如何检查GPS是否被禁用Android

我有MainActivity中的MainActivity.java和HomeFragment.java两个文件,从HomeFragment中调用一个函数,要求用户打开手机上的位置服务。 问题是,即使用户已经打开了位置function,函数仍然被调用。 有没有一种方法,我可以做到这一点,只有当位置functionclosures,从HomeFragmentfunction启动。

HomeFragment.java

public static void displayPromptForEnablingGPS( final Activity activity) { final AlertDialog.Builder builder = new AlertDialog.Builder(activity); final String action = Settings.ACTION_LOCATION_SOURCE_SETTINGS; final String message = "Enable either GPS or any other location" + " 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(); } }); builder.create().show(); } 

MainActivity.java

 public void showMainView() { HomeFragment.displayPromptForEnablingGPS(this); } 

谢谢 :)

Solutions Collecting From Web of "如何检查GPS是否被禁用Android"

你可以使用这样的东西:

 final LocationManager manager = (LocationManager) getSystemService( Context.LOCATION_SERVICE ); if ( !manager.isProviderEnabled( LocationManager.GPS_PROVIDER ) ) { // Call your Alert message } 

这应该够了吧。

要检查定位服务是否已启用,可以使用类似于以下的代码:

 String locationProviders = Settings.Secure.getString(getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED); if (locationProviders == null || locationProviders.equals("")) { ... startActivity(new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS)); } 

资料来源:马库斯邮报在这里find