Android棉花糖应用程序中位置的权限问题

纳文

我正在学习开发一个Android应用程序,以便在Google开发者论坛之后获取设备位置:@ http://developer.android.com/training/location/retrieve-current.html#last-known @ http://developer.android。 com / training / location / receive-location-updates.html

该示例显示了如何为此目的使用Google PLay Services。但是该getLastLocation()函数始终返回null。

位置位置= LocationServices.FusedLocationApi.getLastLocation(mGoogleApiClient);

由于最初位置可能为空,所以我添加了以下几行以接收定期的位置更新

LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient,mLocationRequest,this);

这将引发以下消息的异常

客户端必须具有ACCESS_COARSE_LOCATION或ACCESS_FINE_LOCATION权限才能执行任何位置操作

我已经在清单文件中添加了权限:

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

我也打开了Google Maps来更新Google Play服务中的当前位置,但是同样的问题仍然存在。我是Android开发的新手,在发布此问题之前,我已经进行了很多搜索,但没有找到适合我的解决方案。我正在Android Marshmallow设备上进行测试,使用Android Studio 1.3.2

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="newray.acpsa1">
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme">
        <meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />

        <meta-data
            android:name="com.google.android.maps.v2.API_KEY"
            android:value="@string/google_maps_key" />

        <activity
            android:name=".MapsActivity"
            android:label="@string/title_activity_maps">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>

</manifest>

活动中的onCreate函数

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        mGoogleApiClient = new GoogleApiClient.Builder(this)
                .addConnectionCallbacks(this)
                .addOnConnectionFailedListener(this)
                .addApi(LocationServices.API)
                .build();
        mGoogleApiClient.connect();
        mLocationRequest = LocationRequest.create()
                .setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY)
                .setInterval(10 * 1000)        
                .setFastestInterval(1 * 1000); 
        /* Rest functionality */
    }

onConnected功能

@Override
    public void onConnected(Bundle bundle) {
        try{
        Location location = LocationServices.FusedLocationApi.getLastLocation(mGoogleApiClient);
        LatLng loc = new LatLng(21.356993, 72.826647);
        if (location == null) {
            Log.d(TAG,"location is again null");
            LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient, mLocationRequest, this);
            Log.d(TAG, "Requested for updates");
        }
        else {
            loc = new LatLng(location.getLatitude(),location.getLongitude());
            handleNewLocation(location);
        }            
        } catch (Exception e) {
            Log.d(TAG, "Error in onConnected.  "+e.getMessage());

        }
    }

日志:

XXXX: Error in onConnected.  Client must have ACCESS_COARSE_LOCATION or ACCESS_FINE_LOCATION permission to perform any location operations.

build.gradle文件中的依赖项:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:23.1.0'
    compile 'com.google.android.gms:play-services:8.1.0'
    compile 'com.google.android.gms:play-services-location:8.1.0'
}
巴夫迪普·萨加尔(Bhavdip Sagar)

在棉花糖中,Android SDK中有很多新东西。要求许可是每个开发人员都应牢记的新更新之一。类似的事情也发生在你身上。如果您的应用程序目标版本为23,则在开始使用它之前,您可能必须先获得用户的许可。您只能在用户允许访问的情况下使用它。因此,开发人员需要在照顾到所有测试用例的同时,将用户的许可纳入应用程序

例如,您的应用程序需要访问位置。在较早版本的android上,安装时会显示权限对话框,并在清单文件中为应用程序授予了已定义的权限。这东西变成了棉花糖。现在,每个应用程序都必须获得用户的许可才能访问它。

请访问开发人员网站,并学习有关如何引导用户进入应用程序以询问应用程序的基本步骤runtime permission

有很多站点显示有关如何在棉花糖中申请许可的基本教程。很少有人可以建议如下

具有运行时权限构建更好的应用程序

权限设计指南

该链接为您提供有关如何在请求许可之前引导用户进入应用程序的基本信息。

谢谢。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Android棉花糖中的屏幕方向更改时的权限对话框使应用程序崩溃

来自分类Dev

Android棉花糖动态权限更改会杀死所有应用程序进程

来自分类Dev

棉花糖应用程序权限:android.location.PROVIDERS_CHANGED未触发

来自分类Dev

Android-如何在棉花糖中打开默认的手机应用程序屏幕

来自分类Dev

Android棉花糖权限

来自分类Dev

Android棉花糖权限?

来自分类Dev

第一次在棉花糖中启动应用程序时如何获取位置信息

来自分类Dev

Android-将操作系统升级到棉花糖后,权限在已安装的应用程序上的行为

来自分类Dev

如何授予对棉花糖上运行的android应用的权限?

来自分类Dev

应用程序(WiFi连接)在Android 6.0棉花糖上不再工作

来自分类Dev

当应用程序在棉花糖中关闭时,pushnotification不显示

来自分类Dev

如何确保棉花糖前应用程序崩溃

来自分类Dev

请求权限的问题棉花糖

来自分类Dev

我的应用程序不会显示在MIME类型为video / *的android.intent.action.VIEW的选择器对话框中,仅在棉花糖上

来自分类Dev

手电筒应用程序未在 kitkat 设备中关闭。完美地处理棉花糖

来自分类Dev

棉花糖更新的设备中的运行时权限弹出窗口单击问题

来自分类Dev

如何检查位置权限已由用户在android 6.0中为我的应用程序提供?

来自分类Dev

如何确保我的应用程序无法安装在棉花糖上

来自分类Dev

有什么办法可以在Android中本地化棉花糖权限字符串吗?

来自分类Dev

如何在Eclipse和Android Studio中为棉花糖设置App权限?

来自分类Dev

尝试检索前台应用时出现Android 6.0棉花糖UsageStatsManager问题

来自分类Dev

执行需要用户在Android 6.0棉花糖中禁止的权限的代码的未更新应用会发生什么情况

来自分类Dev

当我卸载应用程序时,Android Samsung S6 SM-G920F棉花糖无法删除数据

来自分类Dev

Appcelerator Studio-当我在视频播放器中加载URL时,Android应用程序在棉花糖上崩溃

来自分类Dev

在棉花糖Android中无法创建目录

来自分类Dev

Android棉花糖中的SimpleDateFormat行为更改

来自分类Dev

Android在棉花糖中获取蓝牙地址

来自分类Dev

Android 6棉花糖权限无法正常使用

来自分类Dev

棉花糖android的“写入设置”权限未授予

Related 相关文章

  1. 1

    Android棉花糖中的屏幕方向更改时的权限对话框使应用程序崩溃

  2. 2

    Android棉花糖动态权限更改会杀死所有应用程序进程

  3. 3

    棉花糖应用程序权限:android.location.PROVIDERS_CHANGED未触发

  4. 4

    Android-如何在棉花糖中打开默认的手机应用程序屏幕

  5. 5

    Android棉花糖权限

  6. 6

    Android棉花糖权限?

  7. 7

    第一次在棉花糖中启动应用程序时如何获取位置信息

  8. 8

    Android-将操作系统升级到棉花糖后,权限在已安装的应用程序上的行为

  9. 9

    如何授予对棉花糖上运行的android应用的权限?

  10. 10

    应用程序(WiFi连接)在Android 6.0棉花糖上不再工作

  11. 11

    当应用程序在棉花糖中关闭时,pushnotification不显示

  12. 12

    如何确保棉花糖前应用程序崩溃

  13. 13

    请求权限的问题棉花糖

  14. 14

    我的应用程序不会显示在MIME类型为video / *的android.intent.action.VIEW的选择器对话框中,仅在棉花糖上

  15. 15

    手电筒应用程序未在 kitkat 设备中关闭。完美地处理棉花糖

  16. 16

    棉花糖更新的设备中的运行时权限弹出窗口单击问题

  17. 17

    如何检查位置权限已由用户在android 6.0中为我的应用程序提供?

  18. 18

    如何确保我的应用程序无法安装在棉花糖上

  19. 19

    有什么办法可以在Android中本地化棉花糖权限字符串吗?

  20. 20

    如何在Eclipse和Android Studio中为棉花糖设置App权限?

  21. 21

    尝试检索前台应用时出现Android 6.0棉花糖UsageStatsManager问题

  22. 22

    执行需要用户在Android 6.0棉花糖中禁止的权限的代码的未更新应用会发生什么情况

  23. 23

    当我卸载应用程序时,Android Samsung S6 SM-G920F棉花糖无法删除数据

  24. 24

    Appcelerator Studio-当我在视频播放器中加载URL时,Android应用程序在棉花糖上崩溃

  25. 25

    在棉花糖Android中无法创建目录

  26. 26

    Android棉花糖中的SimpleDateFormat行为更改

  27. 27

    Android在棉花糖中获取蓝牙地址

  28. 28

    Android 6棉花糖权限无法正常使用

  29. 29

    棉花糖android的“写入设置”权限未授予

热门标签

归档