Android中如何監聽GPS開啟和關閉
有時需要監聽GPS的開關(這種需求并不多見)。實現的思路是監聽代表 GPS 開關的 URI 的數據是否有發生變化
GPS的開關是系統設置,android.provider.Settings.Secure 代表了app可以讀取但不能修改的系統設置。可以從這個類中獲取到代表GPS開關的URI。
關鍵代碼如下
getContentResolver()
.registerContentObserver(
Settings.Secure
.getUriFor(Settings.System.LOCATION_PROVIDERS_ALLOWED),
false, mGpsMonitor); 完整的代碼如下:
public class MyActivity extends Activity {
private final ContentObserver mGpsMonitor = new ContentObserver(null) {
@Override
public void onChange(boolean selfChange) {
super.onChange(selfChange);
boolean enabled = mLocationManager
.isProviderEnabled(LocationManager.GPS_PROVIDER);
System.out.println("gps enabled? " + enabled);
}
};
private LocationManager mLocationManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mLocationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
}
protected void onStart() {
getContentResolver()
.registerContentObserver(
Settings.Secure
.getUriFor(Settings.System.LOCATION_PROVIDERS_ALLOWED),
false, mGpsMonitor);
};
@Override
protected void onStop() {
super.onStop();
getContentResolver().unregisterContentObserver(mGpsMonitor);
}
} 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!