I have Lollipop, and see that we have a separate app for "android system webview". Is there any way to get its version number from my own app that uses a WebView instance?
I'd like to report some stats on which version my users are using.
Thanks
Scroll down the App Info screen. At the bottom, the Android System Webview version number will be listed. For example, Version 83.0. 4103.106.
To see what version of Chrome is currently used on a Lollipop device, simply go to Settings < Apps < Android System WebView and look at the version.
You can find the app at the following location: Settings → Application Manager → System Apps. Here, you will be able to see the Android System WebView app and check whether it is active or disabled. You might even be prompted to update it by visiting the Google Play Store.
How about checking the user-agent string?
Log.i("WebViewActivity", "UA: " + mWebView.getSettings().getUserAgentString());
For me, this outputs:
User-agent string: Mozilla/5.0 (Linux; Android 5.0; Nexus 4 Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/37.0.0.0 Mobile Safari/537.36
More info: WebView on Android
In case you override UA string with your own:
String getWebviewVersionInfo() { // Overridden UA string String alreadySetUA = mWebView.getSettings().getUserAgentString(); // Next call to getUserAgentString() will get us the default mWebView.getSettings().setUserAgentString(null); // Devise a method for parsing the UA string String webViewVersion = parseUAForVersion(mWebView.getSettings().getUserAgentString()); // Revert to overriden UA string mWebView.getSettings().setUserAgentString(alreadySetUA); return webViewVersion; }
UPDATE: Apparently this will not always accurately give the actual WebView
client being used on the target device. As of Android 7.0 users can select preferred client (h/t @Greg Dan).
First, we get the package name from Google Play Store:
https://play.google.com/store/apps/details?id=com.google.android.webview
Then this
PackageManager pm = getPackageManager(); try { PackageInfo pi = pm.getPackageInfo("com.google.android.webview", 0); Log.d(TAG, "version name: " + pi.versionName); Log.d(TAG, "version code: " + pi.versionCode); } catch (PackageManager.NameNotFoundException e) { Log.e(TAG, "Android System WebView is not found"); }
gives
D/WebViewDetails﹕ version name: 39 (1743759-arm) D/WebViewDetails﹕ version code: 320201
Hope this helps.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With