谷歌地方选择器没有在Android Mi手机上发布

Nis*_*sha 20 android android-location google-places-api google-play-services

我在Android Redmi Phones版本5.1.1中遇到了Google Place Picker的问题.我使用以下代码启动Google地方选择器.

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();
    }
Run Code Online (Sandbox Code Playgroud)

我添加了以下权限和api密钥以及google play服务版本.

<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>
Run Code Online (Sandbox Code Playgroud)

它正在开发除Android Redmi Note2之外的所有手机.任何建议将不胜感激.提前致谢.

小智 -1

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

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.myapp" >
  ...
  <uses-permission 
Run Code Online (Sandbox Code Playgroud)

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);
Run Code Online (Sandbox Code Playgroud)

///调用这个方法

 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();
        }
    }
Run Code Online (Sandbox Code Playgroud)