請使用這個類:
public class GpsConnectionManager {
@SuppressWarnings("deprecation")
public void turnGPSOn(Context context) {
Intent intent = new Intent("android.location.GPS_ENABLED_CHANGE");
intent.putExtra("enabled", true);
context.sendBroadcast(intent);
String provider = Settings.Secure.getString(context.getContentResolver(),
Settings.Secure.LOCATION_PROVIDERS_ALLOWED);
if (!provider.contains("gps")) { // if gps is disabled
final Intent poke = new Intent();
poke.setClassName("com.android.settings",
"com.android.settings.widget.SettingsAppWidgetProvider");
poke.addCategory(Intent.CATEGORY_ALTERNATIVE);
poke.setData(Uri.parse("3"));
context.sendBroadcast(poke);
}
}
public void turnGPSOff(Context context) {
Intent intent = new Intent("android.location.GPS_ENABLED_CHANGE");
intent.putExtra("enabled", false);
context.sendBroadcast(intent);
// String provider =
// Settings.Secure.getString(this.getContentResolver(),
// Settings.Secure.LOCATION_PROVIDERS_ALLOWED);
// if (provider.contains("gps")) { // if gps is enabled
// final Intent poke = new Intent();
// poke.setClassName("com.android.settings",
// "com.android.settings.widget.SettingsAppWidgetProvider");
// poke.addCategory(Intent.CATEGORY_ALTERNATIVE);
// poke.setData(Uri.parse("3"));
// this.sendBroadcast(poke);
// }
}
}
,並使用這些權限:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_GPS" />
<uses-permission android:name="android.permission.ACCESS_ASSISTED_GPS" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
和奇巧它不會工作
您的類參考示例這可以作爲參考傳遞 – 2014-09-11 10:01:08