1

有没有办法以编程方式禁用谷歌位置服务?我想编写一个应用程序以使用小部件将其关闭。

谢谢你的帮助!

4

4 回答 4

5

有没有办法以编程方式禁用谷歌位置服务?

不,抱歉,您不能以编程方式禁用 GPS 等,除非通过安装在系统分区上的应用程序或由固件的签名密钥签名。IOW,您需要一部有根电话。

于 2012-11-20T20:52:38.517 回答
3

据我所知,LocationManager 是一个无法关闭的系统服务。不过,您可以禁用该服务使用的所有位置提供程序,例如无线位置、GPS 等。

于 2012-11-20T20:44:22.090 回答
1

如果您使用的是,您可以通过模拟单击“快速设置”中的“位置”选项UiAutomater来关闭定位服务。过滤器逻辑可能取决于平台。您可以使用.uiautomatorviewer

IE

UiDevice.getInstance(getInstrumentation()).openQuickSettings();
UiDevice.getInstance(getInstrumentation()).findObject(new UiSelector().descriptionContains("Location").className(ViewGroup.class)).click();

构建.gradle

androidTestCompile 'com.android.support.test.uiautomator:uiautomator-v18:2.1.2'
于 2017-05-23T15:07:46.643 回答
0

简短的回答是,不。但如果你真的需要关闭它,你可以提示用户这样做:

LocationManager loc = (LocationManager) this.getSystemService( Context.LOCATION_SERVICE );
        if( loc.isProviderEnabled(android.location.LocationManager.GPS_PROVIDER ) )
        {
            Toast.makeText( this, "Please turn off GPS", Toast.LENGTH_LONG).show();
            Intent myIntent = new Intent( Settings.ACTION_LOCATION_SOURCE_SETTINGS );
            startActivity(myIntent);

        }
        else
        {

        // Do nothing   
        }

这可能对您的情况没有帮助,但这是我知道更改设置的唯一方法。

于 2012-11-20T21:58:33.697 回答