如果我在关闭GPS的情况下打开谷歌地图应用程序,并尝试获取我的位置,我会得到图1中的提示(抱歉,如果数字是意大利语)。
我在StackOverflow中找到了几个答案,但是所有答案都建议做这样的事情:
if(gpsNotEnabled) {
AlertDialog.Builder dialog = new AlertDialog.Builder(this);
dialog.setMessage("GPS not enabled");
dialog.setPositiveButton("Enable", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface paramDialogInterface, int paramInt) {
Intent myIntent = new Intent( Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivity(myIntent);
//get gps coordinates
}
});
dialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface paramDialogInterface, int paramInt) {
// Do something without gps
}
});
dialog.show();
}
但如果我这样做,我会得到一个如图2所示的对话框;如果我点击enable
,我会进入GPS设置,如图3所示,我可以在那里打开GPS然后再回来。
这不是我们在Google地图中可以看到的行为:如果我在提示中点击yes
,则GPS会自动开启,甚至无需退出当前应用。我们怎样才能实现这种行为?