2016-10-05 6 views
0

내 응용 프로그램에서 webview를 사용하고 있습니다. 나는 현재 위치를 알 수 없다. kitkat 버전의 Android webview 현재 위치가 작동하지 않습니다.

나는

@Override 
    public void onGeolocationPermissionsShowPrompt(String origin, android.webkit.GeolocationPermissions.Callback callback) { 
     super.onGeolocationPermissionsShowPrompt(origin, callback); 

     //TODO: temporary commented 
     requestPermission(); 
     turnGPSOn(); 
     callback.invoke(origin, true, false); 
    } 


    private void requestPermission(){ 

    if (ActivityCompat.shouldShowRequestPermissionRationale(MySocialNetworkActivity.this, Manifest.permission.ACCESS_FINE_LOCATION)){ 

     Toast.makeText(MySocialNetworkActivity.this,"GPS permission allows us to access location data. Please allow in App Settings for additional functionality.",Toast.LENGTH_LONG).show(); 

    } else { 

     ActivityCompat.requestPermissions(MySocialNetworkActivity.this,new String[]{Manifest.permission.ACCESS_FINE_LOCATION},PERMISSION_REQUEST_CODE); 
    } 
} 

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); 
    } 
} 

이 코드가 작동() 메소드 내가

webView = (WebView) findViewById(R.id.webview); 
    WebSettings settings = webView.getSettings(); 
    settings.setJavaScriptEnabled(true); 
    settings.setGeolocationEnabled(true); 

webView.setWebChromeClient(new PQChromeClient()); 

내 PQChromeClient에서

이 내 활동 클래스의에서 onCreate 방법에 매니페스트

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 

에 권한을 준 막대 사탕과 마시맬로는 있지만 kitkat는 아닙니다. 최근 안드로이드 스튜디오를 2.15에서 2.2로 업데이트했습니다. 이 업데이트로 인해 문제가 발생합니까?

답변

1

KitKat에서 이미 Chromium 기반 WebView를 사용하고 있으므로 지원되어야합니다. 어쨌든이 방법으로 단서를 얻을 수 있습니다. https://developer.chrome.com/multidevice/webview/overview 기기의 Play 스토어에서 WebView 패키지 버전을 확인하여 해당 기기에서 이전 버전을 사용하고있는 것처럼 업데이트되었는지 확인해야합니다.