我需要在我的应用中使用“相机”权限。该代码使用PackageManager.queryPermissionsByGroup来查询“ android.permission-group.CAMERA”组中的权限。
我在android Q中发现,此方法返回null。但是找不到有关如何替换它的详细说明。
任何人都知道有关android Q权限组中查询权限的详细更改以及如何在此版本中更正吗?
答案 0 :(得分:1)
the release notes中提到了这一点:
从Android Q开始,应用无法查看用户界面中权限的分组方式。
您需要手动收集该信息并将其编码在您的应用中。例如,here is the platform manifest from Q Beta 5。如果您手动搜索android.permission.CAMERA
,您将看到该组中的唯一权限是let m1 = Maybe<String>.empty()
let m2 = Maybe<String>.just("AA")
let s1 = m1.asObservable().asSingle()
let s2 = m2.asObservable().asSingle()
Single.zip(s1, s2).subscribe(onSuccess: { a, b in
print("==================")
print(a)
print(b)
print("==================")
}, onError: { e in
print("EEEEE")
print(e) // Sequence doesn't contain any elements.
}).disposed(by: disposeBag)
。如果在将来的Android版本中,其他权限已添加到该组,则您会在平台清单中找到该权限,并能够更新您的应用。尽管这种方法没有考虑到制造商的任何更改,但我怀疑这是唯一的解决方法。