Intent gpsIntent = new Intent();
gpsIntent.setClassName("com.android.settings", "com.android.settings.widget.SettingsAppWidgetProvider");
gpsIntent.addCategory("android.intent.category.ALTERNATIVE");
gpsIntent.setData(Uri.parse("custom:3"));
try {
PendingIntent.getBroadcast(StartActivity.this, 0, gpsIntent, 0).send();
} catch (CanceledException e) {
e.printStackTrace();
}
2.第二種方法
//獲取GPS現在的狀態(打開或是關閉狀態)
boolean gpsEnabled = Settings.Secure.isLocationProviderEnabled( getContentResolver(), LocationManager.GPS_PROVIDER );
if(gpsEnabled)
{
//關閉GPS
Settings.Secure.setLocationProviderEnabled( getContentResolver(), LocationManager.GPS_PROVIDER, false );
} else {
//打開GPS
Settings.Secure.setLocationProviderEnabled( getContentResolver(), LocationManager.GPS_PROVIDER, true);
}
3.第三種方法(手動設置)
LocationManager alm = (LocationManager)StartActivity.this.getSystemService(Context.LOCATION_SERVICE);
if (alm.isProviderEnabled(android.location.LocationManager.GPS_PROVIDER))
{
Toast.makeText(this, "GPS模塊正常", Toast.LENGTH_SHORT).show();
}
Toast.makeText(this, "請開啓GPS!", Toast.LENGTH_SHORT).show();
Intent intent = new Intent(Settings.ACTION_SECURITY_SETTINGS);
startActivityForResult(intent,0); //此爲設置完成後返回到獲取界面
第一種方法需要添加權限 <uses-permission android:name="android.permission.WRITE_SETTINGS" ></uses-permission>。
第二種方法添加 <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
同時需要apk的AndroidManifest.xml中聲明瞭android:sharedUserId="android.uid.system",並進行系統源碼簽名或者其他系統應用簽名。
第三種方法添加權限<uses-permission android:name="android.permission.WRITE_SETTINGS" ></uses-permission>