如何在Android 6.x上以编程方式启用或禁用GPS?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Android 6.x上以编程方式启用或禁用GPS?相关的知识,希望对你有一定的参考价值。
我知道有关在android上以编程方式打开/关闭GPS的问题已经多次讨论过了。我有与此链接中讨论的相同问题:
How can I enable or disable the GPS programmatically on Android?
但有没有一种适用于Android 6.x的方法?
答案
首先,你需要获得gps的运行时权限,然后这将工作
请检查此链接以直接启用和禁用gps
另一答案
private void buildAlertMessageNoGps() {
final AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage(" Your GPS seems to be disabled, do you want to enable it?")
.setCancelable(false)
.setPositiveButton("ّyes", new DialogInterface.OnClickListener() {
public void onClick(@SuppressWarnings("unused") final DialogInterface dialog, @SuppressWarnings("unused") final int id) {
startActivity(new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS));
}
})
.setNegativeButton("no", new DialogInterface.OnClickListener() {
public void onClick(final DialogInterface dialog, @SuppressWarnings("unused") final int id) {
dialog.cancel();
}
});
final AlertDialog alert = builder.create();
alert.show();
}
private void turnGPSOff(){
String provider = Settings.Secure.getString(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"));
sendBroadcast(poke);
}
}
android 6中的权限下来
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
和
权限android 6了
if ( ContextCompat.checkSelfPermission(this,
android.Manifest.permission.ACCESS_FINE_LOCATION) ==
PackageManager.PERMISSION_GRANTED && ContextCompat.checkSelfPermission(this,
android.Manifest.permission.ACCESS_COARSE_LOCATION) ==
PackageManager.PERMISSION_GRANTED) {
} else {
Toast.makeText(this, R.string.error_permission_map, Toast.LENGTH_LONG).show();
}
以上是关于如何在Android 6.x上以编程方式启用或禁用GPS?的主要内容,如果未能解决你的问题,请参考以下文章
如何在android studio上以编程方式检查自动启动权限是启用还是禁用
Android:如何以编程方式启用/禁用 Wifi 或 Internet 连接
Android:如何以编程方式启用/禁用 Wifi 或 Internet 连接
可以在每个会话的基础上以编程方式启用/禁用 DPI 缩放吗?