public boolean onKeyDown(int keyCode, KeyEvent event){
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0){
Context context = getActivity();
String provider = Settings.Secure.getString(context.getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED);
if (provider.contains("gps")){
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"));
context.sendBroadcast(poke);
}
}
return super.onKeyDown(keyCode, event);
}
我做了一些代码,但它不能禁用GPS。 如果您有代码,请分享它,我希望在应用程序最小化或关闭时关闭 GPS,当应用程序启动时,它将自动打开 GPS,我打开了它但无法关闭。.
启用
和禁用GPS掌握在用户手中。您可以向他显示一个对话框,以通知他有关禁用 GPS 的信息。在这种情况下,在对话框中保留两个按钮 - 一个用于"设置",另一个用于"确定"或"取消"。
像这样:
public static void promptForGPS(
final Activity activity)
{
final AlertDialog.Builder builder =
new AlertDialog.Builder(activity);
final String action = Settings.ACTION_LOCATION_SOURCE_SETTINGS;
final String message = "Disable GPS....Message here"
+ " service to find current location. Click OK to go to"
+ " location services settings to let you do so.";
builder.setMessage(message)
.setPositiveButton("OK",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface d, int id) {
activity.startActivity(new Intent(action));
d.dismiss();
}
})
.setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface d, int id) {
d.cancel();
}
});
builder.create().show();
}
进一步参考:
Android使用AlertDialog激活GPS:如何等待用户采取行动?
您使用的代码是Android系统中的安全漏洞。它以前在工作。由于开发人员已解决此问题,因此您无法以编程方式启动/停止GPS。