Webview中的地理位置(Android 6.0)

时间:2016-05-16 09:59:24

标签: android geolocation android-webview

我正在开发一个Android应用程序(webview)。启用地理定位需要其中一项功能,以便检测我在Google地图中的当前位置。

的Manifest.xml

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

MainActivity.java(代码的一部分)

mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setGeolocationEnabled(true);  
mWebView.getSettings().setGeolocationDatabasePath(getApplicationContext().getFilesDir().getPath());
mWebView.setWebChromeClient(new GeoWebChromeClient());

public class GeoWebChromeClient extends WebChromeClient {
    @Override
    public void onGeolocationPermissionsShowPrompt(String origin,
                                                   GeolocationPermissions.Callback callback) {
        callback.invoke(origin, true, false);
    }
}

我已经使用Android 5.0(Lollipop)测试过,webview工作正常,Google Map可以检测到我当前的位置。对于Android 6.0,我从logcat收到错误,Google地图无法检测到我的精确位置。

> E/cr_LocationProvider: Caught security exception while registering for
> location updates from the system. The application does not have
> sufficient geolocation permissions.

非常感谢任何帮助。感谢。

0 个答案:

没有答案