我有一个应用程序需要一个恒定的GPS状态ON.Suppose里面的应用程序,我关闭了我的GPS。现在我希望我的应用程序显示再次启用gps,否则它应该显示强制对话框。我希望你得到的情况我在打开或关闭打开应用程序,gps时没有问。
答案 0 :(得分: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状态。在GpsLocationReceiver中打开或关闭GPS中的changaed,但不会反复打开或关闭值,因此你必须声明静态布尔变量来监视它,如果它关闭,那么通过下面的代码显示你的Dialog打开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();
}