某些手机​​上没有启动Google Place Picker

时间:2017-05-12 04:45:06

标签: android google-places-api

我们正面临Google Place Picker的一个问题,即它没有在一部特定的手机上运行(运行Android 6.0的MI Note 4)并引发异常对话,“不幸的是,Google Play服务......”。

1)代码正在我们拥有的所有测试手机上工作,除了这款手机外,还有从Gingerbread到Nougat的20种不同型号。因此,权限和密钥似乎不是问题。 com.google.android.geo.API_KEY已正确放置在应用程序部分中。

2)这个问题特别适用于这款手机。 Google Play服务已安装在手机上,并且正在调用 GooglePlayServicesUtil.isGooglePlayServicesAvailable 按预期返回 ConnectionResult.SUCCESS ,我们会在启动地点选择器之前检查该服务。

3)此外,手机还有游戏商店,&谷歌地图运行良好,进一步确认游戏服务正在运作。

4)我们甚至尝试将google play API降级到10.0.1和9.2.0只是为了找到原因,但行为是一样的。

以下是代码,它是标准的地方选择器代码。

try {
     PlacePicker.IntentBuilder builder = new PlacePicker.IntentBuilder();
     Intent intent = builder.build(this);
     startActivityForResult(intent, PLACE_PICKER_REQUEST);
 } catch (GooglePlayServicesRepairableException e) {
     GooglePlayServicesUtil
                    .getErrorDialog(e.getConnectionStatusCode(), this, 0);
 } catch (GooglePlayServicesNotAvailableException e) {
       Toast.makeText(this, "Google Play Services is not available.", Toast.LENGTH_LONG).show();
 } catch (Exception e) {
       Toast.makeText(this, "Google Play Services exception.", Toast.LENGTH_LONG).show();
 }

知道可能出现什么问题吗?

1 个答案:

答案 0 :(得分:0)

由于Google服务,此问题正在发生。 Google服务需要更新。所以只需在打开应用程序或放置选择器之前进行检查。

if (googlePlayApiStatus == ConnectionResult.SERVICE_VERSION_UPDATE_REQUIRED)

如果返回true。显示一个对话框,用户可以更新Google服务并粘贴以下代码,以便用户访问Google Play商店以更新服务。

final String appPackageName = "com.google.android.gms";
try {
/*IT WILL OPEN IN GOOGLE PLAY STORE*/
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + appPackageName)));
}
catch (android.content.ActivityNotFoundException anfe) {
/*IF GOOGLE PLAY STORE APP NOT FOUND IN DEVICE IT WILL OPEN IN WEB BROWSER*/
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=" + appPackageName)));
}

那就是它!!