우리 모두 Android의 GPS 문제에 대해 알고 있습니다.프로그래밍 방식으로 NETWORK_PROVIDER을 활성화하거나 비활성화 할 수 있습니다
우리는 같은 turnOnGps 기능을 어떻게 만들지 만 NETWORK_PROVIDER에 벨로우입니다. 둘 다 켜기를 원합니다.
private void turnGPSOn(){
String provider = Settings.Secure.getString(getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED);
if(!provider.contains("gps")){
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);
} }
감사를하는 데 도움이
희망을 위해, here (docs)을 참조하십시오. 하지만 코드없이 사용자없이이 작업을 수행하려고합니다. 다른 아이디어? –
죄송합니다.하지만 그 방법은 단 한 가지입니다. 제공하신 코드는 약간의 해킹 일 뿐이며, 이는 PowerManager의 버그 였지만, 2.3 이상에서 수정되었습니다. CommonsWare는 "눈에 띄게 개인 정보 보호를 위해 위치 공급자를 직접 활성화하거나 비활성화 할 수 없습니다." GPS를 사용하도록 설정했는지 여부는 사용자의 선택이므로 사용자 상호 작용이 필요합니다. – user959631