I have an app which requires a constant gps status ON.Suppose inside app,I turned off my GPS.Now I want my App to show to enable gps again or else it should show force dialog.I hope you got the situation.I am not asking during opening app,gps on or off.
user6177970
问问题
387 次
1 回答
0
下面的代码可以帮助你..
声明广播接收器
public class GpsLocationReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().matches("android.location.PROVIDERS_CHANGED")) {
Log.e("GPS", "changed" + intent);
}
}}
在 AndroidManifest.xml 文件中声明
<receiver android:name=".GpsLocationReceiver">
<intent-filter>
<action android:name="android.location.PROVIDERS_CHANGED" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
但是您已经声明了一个常量变量来监控 GPS Status 。在 GpsLocationReceiver 中,开启或关闭 GPS 时会进行更改,但不会检索开启或关闭值,因此您必须声明静态布尔变量来监控它,如果它关闭,则通过以下代码显示您的对话框以打开 GPS 设置。
public void showSettingsAlert(){
AlertDialog myAlertDialog;
AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
// Setting Dialog Title
builder.setTitle("GPS settings");
builder.setCancelable(false);
// Setting Dialog Message
builder.setMessage("For Use This Application You Must Need to Enable GPS. do you want to go Setting menu?");
// On pressing Settings button
builder.setPositiveButton("Settings", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
mContext.startActivity(intent);
}
});
// on pressing cancel button
builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
myAlertDialog = builder.create();
myAlertDialog.show();
}
于 2016-05-31T11:10:53.100 回答