如何编程实现开启或关闭gps
在Activity中添加如下方法: [java] view plaincopyprint? private void toggleGPS() { Intent gpsIntent = new Intent(); gpsIntent。 setClassName("com。android。settings", "com。android。settings。widget。SettingsAppWidgetProvider"); gpsIntent。 addCategory("android。intent。category。ALTERNATIVE"); gpsIntent。setD...全部
在Activity中添加如下方法: [java] view plaincopyprint? private void toggleGPS() { 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(this, 0, gpsIntent, 0)。send(); } catch (CanceledException e) { e。printStackTrace(); } } private void toggleGPS() { 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(this, 0, gpsIntent, 0)。send(); } catch (CanceledException e) { e。printStackTrace(); } } 这个方法是1个纯开关,如果当前是开启的,那么就会关闭它,反之亦然。
检查GPS开关状态 那么,如何查看当前的GPS开关状态呢?可以用上面提到的反射方式调用isLocationProviderEnabled,代码片断如下: [java] view plaincopyprint? secureClass = cl。
loadClass("android。provider。Settings$Secure"); isMethod = secureClass。getMethod("isLocationProviderEnabled", ContentResolver。
class, String。class); Boolean ret = (Boolean) isMethod。invoke(secureClass, this 。getContentResolver(), "gps"); secureClass = cl。
loadClass("android。provider。Settings$Secure"); isMethod = secureClass。getMethod("isLocationProviderEnabled", ContentResolver。
class, String。class); Boolean ret = (Boolean) isMethod。invoke(secureClass, this 。getContentResolver(), "gps"); 也可以直接用下面的方法: [java] view plaincopyprint? private void isGPSEnable() { /* 用Setting。
System来读取也可以,只是这是更旧的用法 String str = Settings。System。getString(getContentResolver(), Settings。Secure。
LOCATION_PROVIDERS_ALLOWED); */ String str = Settings。Secure。getString(getContentResolver(), Settings。
Secure。LOCATION_PROVIDERS_ALLOWED); Log。v("GPS", str); if (str != null) { return str。contains("gps"); } else{ return false; } } private void isGPSEnable() { /* 用Setting。
System来读取也可以,只是这是更旧的用法 String str = Settings。System。getString(getContentResolver(), Settings。
Secure。LOCATION_PROVIDERS_ALLOWED); */ String str = Settings。Secure。getString(getContentResolver(), Settings。
Secure。LOCATION_PROVIDERS_ALLOWED); Log。v("GPS", str); if (str != null) { return str。
contains("gps"); } else{ return false; } } 这2种方法的原理都是一样的,方法2其实也就是isLocationProviderEnabled实际调用的代码,只是Google未对读取操作进行权限限制。收起