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)
归档时间: |
|
查看次数: |
901 次 |
最近记录: |