Google地方select器不会在Android Mi手机上启动

Android Redmi手机版本5.1.1中的Google Place Picker遇到问题。 我正在使用以下代码来启动Google Place Picker。

try { PlacePicker.IntentBuilder builder = new PlacePicker.IntentBuilder(); startActivityForResult(builder.build(SelectLocationActivity.this), 1); } catch (Exception e) { e.printStackTrace(); Toast.makeText(SelectLocationActivity.this,""+e.getMessage(),Toast.LENGTH_LONG).show(); } 

我已经添加了以下权限和API密钥和谷歌播放服务版本。

 <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <application> <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> <meta-data android:name="com.google.android.geo.API_KEY" android:value="my-api-key" /> </application> 

除了Android Redmi Note2之外,它正在开发每款手机。 任何build议,将不胜感激。 提前致谢。

Solutions Collecting From Web of "Google地方select器不会在Android Mi手机上启动"

根据你的清单文件,我相信你在manifest标签中join了键而不是application 。 基于Android文档,密钥应该像这样添加:

 <application> ... <meta-data android:name="com.google.android.geo.API_KEY" android:value="YOUR_API_KEY"/> </application> 

不幸的是,我不能用你提到的设备来testing它,但是我记得我使用的是Samsung设备的一个类似的问题(代码在每个设备上工作,除了那个之外)。 此外,再次检查日志,也许有一个消息,你错过了。

从Android 6.0(API级别23)开始,用户在应用程序运行时向应用程序授予权限,而不是在安装应用程序时授予应用程序权限。 此方法简化了应用程序安装过程,因为用户在安装或更新应用程序时无需授予权限。 它还使用户能够更好地控制应用程序的function; 例如,用户可以select给相机应用程序访问相机而不是设备位置。 用户可以随时撤销权限,只需转到应用的“设置”屏幕即可。

 <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.myapp" > ... <uses-permission 

android:name =“android.permission.ACCESS_COARSE_LOCATION”/> android:name =“android.permission.ACCESS_FINE_LOCATION”/>

android:name =“android.permission.ACCESS_COARSE_LOCATION”/> …

将此代码添加到您在OnCreate中的活动

  askForPermission(Manifest.permission.ACCESS_FINE_LOCATION,LOCATION); 

///调用这个方法

  private void askForPermission(String permission, Integer requestCode) { if (ContextCompat.checkSelfPermission(MainActivity.this, permission) != PackageManager.PERMISSION_GRANTED) { // Should we show an explanation? if (ActivityCompat.shouldShowRequestPermissionRationale(MainActivity.this, permission)) { //This is called if user has denied the permission before //In this case I am just asking the permission again ActivityCompat.requestPermissions(MainActivity.this, new String[]{permission}, requestCode); } else { ActivityCompat.requestPermissions(MainActivity.this, new String[]{permission}, requestCode); } } else { Toast.makeText(this, "" + permission + " is already granted.", Toast.LENGTH_SHORT).show(); } }