我的应用程序需要GPS,因此我已重定向用户以启用GPS,以防它关闭。
AlertDialog.Builder dialog = new AlertDialog.Builder(contxt);
dialog.setMessage("Enable GPS Location Service");
dialog.setPositiveButton("Settings", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface paramDialogInterface, int paramInt) {
// TODO Auto-generated method stub
Intent myIntent = new Intent( Settings.ACTION_LOCATION_SOURCE_SETTINGS);
contxt.startActivity(myIntent);
}
});
问题是用户从弹出窗口转到位置设置,如果用户没有从位置设置激活GPS,而不是用户按下后退按钮并返回应用程序。如果此人再次返回应用程序而不是激活GPS装置,则应用程序必须再次显示该对话框。
所以我再次确保它如下,
GetLocationService();
LocationManager manager = (LocationManager) getSystemService(Context.LOCATION_SERVICE );
boolean statusOfGPS = manager.isProviderEnabled(LocationManager.GPS_PROVIDER);
if(statusOfGPS==false)
GetLocationService();
但是,用户从位置设置再次无法启用GPS并单击“后退”按钮并返回应用程序。如何强制用户启用GPS并使用该应用程序。
答案 0 :(得分:0)
如何强制用户启用GPS并使用 应用
在应用程序中移动下一个屏幕之前强制用户启用GPS:
1。创建一种启用或不启用GPS检查的方法,并相应地启动下一个活动:
private void isGPSEnabled(){
LocationManager manager;
boolean statusOfGPS =
manager.isProviderEnabled(LocationManager.GPS_PROVIDER);
if(statusOfGPS){
// start next Activity
}else{
// show alert for enabling GPS
}
}
2。点击AlertDialog
正面按钮点击使用startActivityForResult
启动GPS设置屏幕:
@Override
public void onClick(DialogInterface paramDialogInterface, int paramInt) {
// TODO Auto-generated method stub
Intent myIntent = new Intent( Settings.ACTION_LOCATION_SOURCE_SETTINGS);
contxt.startActivityForResult(myIntent,100);
}
3。当用户从“设置”返回应用时,覆盖onActivityResult
以检查GPS是否已启用:
@Override
protected void onActivityResult(int requestCode,int resultCode,Intent data) {
super.onActivityResult(requestCode, resultCode, data);
isGPSEnabled();
}
同时使AlertDialog
可取消false
形成背面和外部对话:
dialog.setCanceledOnTouchOutside(false);
dialog.setCancelable(false);