如何在 Android 中以编程方式启用禁用 GPS? [复制]

Posted

技术标签:

【中文标题】如何在 Android 中以编程方式启用禁用 GPS? [复制]【英文标题】:How can I enable disable GPS programmatically in Android? [duplicate] 【发布时间】:2013-03-03 19:09:02 【问题描述】:

我正在创建一个防盗应用程序,并通过短信定位我的手机,它在 2.3 之前可以完美运行。 但是在 4.0 中我无法以编程方式打开或关闭 gps 是否有任何其他可能的方式通过代码打开 gps。

【问题讨论】:

***.com/questions/4721449/… 看这里 您问题中代码的过去图片。 你检查过这个链接***.com/questions/4721449/… 吗? 【参考方案1】:

尝试使用此代码。它适用于所有版本。

public void turnGPSOn()

     Intent intent = new Intent("android.location.GPS_ENABLED_CHANGE");
     intent.putExtra("enabled", true);
     this.ctx.sendBroadcast(intent);

    String provider = Settings.Secure.getString(ctx.getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED);
    if(!provider.contains("gps")) //if gps is disabled
        final Intent poke = new Intent();
        poke.setClassName("com.android.settings", "com.android.settings.widget.SettingsAppWidgetProvider"); 
        poke.addCategory(Intent.CATEGORY_ALTERNATIVE);
        poke.setData(Uri.parse("3")); 
        this.ctx.sendBroadcast(poke);


    

// automatic turn off the gps
public void turnGPSOff()

    String provider = Settings.Secure.getString(ctx.getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED);
    if(provider.contains("gps")) //if gps is enabled
        final Intent poke = new Intent();
        poke.setClassName("com.android.settings", "com.android.settings.widget.SettingsAppWidgetProvider");
        poke.addCategory(Intent.CATEGORY_ALTERNATIVE);
        poke.setData(Uri.parse("3")); 
        this.ctx.sendBroadcast(poke);
    

【讨论】:

嗨,它在三星 Galaxy y 中不起作用。它使 gps 接收器始终处于开启模式,修复后它应该处于睡眠模式.. 试试这个代码来关闭gps Intent intent = new Intent("android.location.GPS_ENABLED_CHANGE"); intent.putExtra("启用", false);发送广播(意图); 对于那些面临“ctx”问题的人。 ctx 只不过是活动的实例。如果您在活动中声明这些函数,请使用“className.this”而不是 ctx。 我收到“java.lang.SecurityException: Permission Denial: not allowed to send broadcast android.location.GPS_ENABLED_CHANGE”。应用程序崩溃 这在 Android 4.4 之后不再起作用

以上是关于如何在 Android 中以编程方式启用禁用 GPS? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何在android中以编程方式启用位置访问?

在 Android 中以编程方式启用/禁用屏幕镜像。 [根]

如何在 Swift 中以编程方式启用/禁用菜单对象

如何在 iOS 中以编程方式禁用/启用睡眠模式?

Android - 如何在小米设备中以编程方式启用自动启动选项?

如何在 android 中以编程方式在小米手机安全应用程序中为我的应用程序启用自动启动选项