2016-07-22 3 views
0

활동을 만들 때 GPS를 열려고합니다. 이 코드를 사용하고 있지만 작동하지 않습니다. 이 오류 메시지가 :Android GPS를 자동으로 엽니 다.

이 java.lang.SecurityException : 권한 거부 : 10,084 최소 SDK의 API (17) 최대 SDK의 API = PID = 3818, UID에서 방송 android.location.GPS_ENABLED_CHANGE를 보낼 수없는 23

private void turnGPSOn(){ 
    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); 
    } 
} 

을 그리고이 코드 내가 그들을 시도 :

이 코드에 사용된다. 하지만 같은 문제가 생겼어.

Intent intent=new Intent("android.location.GPS_ENABLED_CHANGE"); 
intent.putExtra("enabled", true); 
sendBroadcast(intent);` 
+0

당신을 열 수없는 코드 .. 보안 문제에서 GPS도 구글 정책을 위반하는 것입니다. 당신이 할 수있는 최선의 방법은 마시맬로와 장비의 GPS 액세스 권한을 런타임에 추가하는 것입니다. – tk1505

답변

0

보안/개인 정보 보호 문제로 인해 GPS를 프로그램 방식으로 활성화/비활성화 할 수 없습니다.

this 스레드를 말하는 경우이 버그가 수정되었습니다.

당신은 GPS 설정 페이지를 열고 사용자가 활성화 또는 수동으로 GPS를 사용하지 수 있도록이 사용할 수

startActivity(new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS)); 
+0

자동으로 할 수 없습니까? –

+0

@JackMarquies 어느 쪽이 설정을 열거 나 GPS를 토글합니까? –

+0

나쁜 생각. 프로그래밍 방식으로 열려면 ... –

관련 문제