-1

Android Things 仅支持有限数量的 API,例如 Cast、Drive 和 Location API。我正在尝试使用一个 API,并且我想在 API 方法及其所需权限之间进行映射。我不确定执行此类任务的最佳方法是什么。我正在使用英特尔爱迪生板。基本上,我需要做这样的事情:

====== 方法 ============= 需要 Android 权限 =============

=====getLocation()====>===== android.permission.ACCESS_FINE_LOCATION

=====getBeaconState()===>===== android.permission.ACCESS_FINE_LOCATION

另外,我需要看看如果缺少所需的权限会发生什么?我只是在寻找有关如何完成这些任务的想法。

4

4 回答 4

1

我不确定您要实现的目标是文档还是代码中的某些内容,但是 AndroidThings 对权限的行为有所不同,因此您无需在代码库中执行任何操作。

不支持在运行时请求权限,因为不能保证嵌入式设备具有接受运行时对话框的 UI。在应用的清单文件中声明您需要的权限。应用清单中声明的​​所有正常和危险权限均在安装时授予。

这来自 Android Things 文档https://developer.android.com/things/sdk/index.html

如您所见,它说

应用清单中声明的​​所有正常和危险权限均在安装时授予。

因此,如果您使用需要的地图,ACCESS_FINE_LOCATION您将在安装时获得许可,并且不需要为“运行时许可”编写任何代码,因为它们不存在。

于 2017-04-15T20:24:43.560 回答
0

试试这个以获得位置运行时权限

if (ContextCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) ==
                PackageManager.PERMISSION_GRANTED &&
                ContextCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_COARSE_LOCATION) ==
                        PackageManager.PERMISSION_GRANTED) {

         //Do your work if permission already granted

        } else {
            ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION}, 1);
        }

并覆盖 onRequestPermissionResult

@Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        if (requestCode == 1) {
            if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {

             //Do your Work
            }
        }
    }
于 2017-04-14T06:42:58.700 回答
0

在 AndroidManifest.xml 中声明

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

在设备上安装apk,然后重新启动设备,它解决了我的问题。

于 2017-04-16T16:56:48.283 回答
-1

用于ActivityCompat.checkSelfPermission检查权限。

用于ActivityCompat.requestPermissions请求许可。

使用接口ActivityCompat.OnRequestPermissionsResultCallback进行回调。

于 2017-04-14T06:30:57.740 回答