我正在开发 Android 操作系统上的应用程序。我不知道如何检查位置服务是否启用。
我需要一个方法,如果它们被启用,则返回“true”,如果没有,则返回“false”(所以在最后一种情况下,我可以显示一个对话框来启用它们)。
您可以使用以下代码检查是否启用了 gps 提供商和网络提供商。
LocationManager lm = (LocationManager)context.getSystemService(Context.LOCATION_SERVICE); boolean gps_enabled = false; boolean network_enabled = false; try { gps_enabled = lm.isProviderEnabled(LocationManager.GPS_PROVIDER); } catch(Exception ex) {} try { network_enabled = lm.isProviderEnabled(LocationManager.NETWORK_PROVIDER); } catch(Exception ex) {} if(!gps_enabled && !network_enabled) { // notify user new AlertDialog.Builder(context) .setMessage(R.string.gps_network_not_enabled) .setPositiveButton(R.string.open_location_settings, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface paramDialogInterface, int paramInt) { context.startActivity(new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS)); } }) .setNegativeButton(R.string.Cancel,null) .show(); }
在清单文件中,您将需要添加以下权限
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>