Auto GPS をオン/オフするコードを使用しています。このコードは、Karbonn ハンドセットでは正常に動作しますが、Samsung Galaxy Y では動作しません。
public void turnGPSOn() {
Intent intent=new Intent("android.location.GPS_ENABLED_CHANGE");
intent.putExtra("enabled", true);
sendBroadcast(intent);
String provider = Settings.Secure.getString(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"));
sendBroadcast(poke);
}
}
public void turnGPSOff() {
String provider = Settings.Secure.getString(getContentResolver(),
Settings.Secure.LOCATION_PROVIDERS_ALLOWED);
if (provider.contains("gps")) {
// if gps is enabled
final Intent gps = new Intent();
gps.setClassName("com.android.settings",
"com.android.settings.widget.SettingsAppWidgetProvider");
gps.addCategory(Intent.CATEGORY_ALTERNATIVE);
gps.setData(Uri.parse("3"));
sendBroadcast(gps);
}
}
turnGPSOff メソッドを使用しても、Samsung デバイスは変更を加えません。turnGPSOn メソッドはうまく機能します。しかし、turnGPSOn メソッドには問題があります。修正を取得した後にこのメソッドを使用すると、GPS 受信機がスリープ モードにならず、モバイル画面で常に点滅します。この方法を使用しない場合、修正された GPS 受信機を取得した後、次の周波数値までスリープ モードになります。何か案が?助けてください。