繁体   English   中英

如何开启和关闭GPS?

[英]How to turn GPS on and off?

Android是否允许以编程方式打开和关闭GPS?

我正在使用下面的代码[功能turnGPSon()和turnGPSoff()]( 从此处开始

我正在使用函数“ GPSStatus()”来检测GPS是否打开。

两个问题:

  1. turnGPSoff()无法正常工作。 turnGPSon()能够打开GPS(“我认为”,因为我可以在左上角的状态图标中看到GPS符号,但是控制中心[galaxy s3]中的GPS按钮并未突出显示,并且我得到了准确的定位)

  2. GPSStatus()总是返回false-我在检查正确的方法吗?

我的目标只是以编程方式打开和关闭GPS吗? (这是真的,Android的不允许GPS进行开启和关闭程序?作为在答复中提到在这里

    private boolean GPSStatus() {
    ContentResolver contentResolver = getBaseContext().getContentResolver();
    boolean gpsStatus = Settings.Secure.isLocationProviderEnabled(contentResolver,    LocationManager.GPS_PROVIDER);
    return gpsStatus;
    }


    public void turnGPSOn()
    {        
    Intent intent = new Intent("android.location.GPS_ENABLED_CHANGE");
    intent.putExtra("enabled", true);
    this.sendBroadcast(intent);

    String provider = Settings.Secure.getString(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.sendBroadcast(poke);
    }
}



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

    myLogger.displayMsgs("in turnGPSoff()", true, true);
    Intent intent = new Intent("android.location.GPS_ENABLED_CHANGE");
    intent.putExtra("enabled", false);
    sendBroadcast(intent);

}

重复,原始在这里

回答:

(您需要rootaccess才能完全控制,因此几乎是不可能的)

原始答案:

  1. 启用/禁用GPS是设计使然的异步过程。 您可以侦听禁用和重新启用GPS的尝试。 但是您不能阻止实际的禁用。 GPS将关闭一秒钟或几秒钟。 或者,您必须设计自己的ROM,以实现仅适用于您自己的应用程序的GPS锁定。

要获得SuperAdmin特权,您需要a)根用户和b)设计安装在/ system / app目录中的小型存根应用程序。 作为上述所有示例,您可以从https://github.com/sms2000/GPSToggler中获取我的GPSToggler。 它或多或少地起作用,并且可以满足您的需求。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM