gpt4 book ai didi

android - 如果未授予 RxPermissions,请避免征求他人许可

转载 作者:行者123 更新时间:2023-11-29 17:08:39 25 4
gpt4 key购买 nike

如果用户不授予权限,我想避免征求他人权限。

例如:我要求读/写外部存储和摄像头,如果用户首先拒绝,图书馆要求摄像头权限,在这种情况下摄像头权限是多余的。

RxPermissions.getInstance(getActivity()).request(Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.CAMERA)
.subscribe(granted -> {
if (granted) {
dispatchCamera();
} else {
showError();
}
});

我想我可以使用 requestEach,但我不知道如果没有授予一个权限如何停止发出项目,而且如果用户授予所有权限我也无法获得最终结果。

最佳答案

我想你的问题已经解决了,但我会为遇到同样麻烦的其他人提供答案。

您只需要 takeUntiltakeWhile requestEach 运算符(取决于您想要的流行为)。 TakeUntil 取消订阅您的流,并只为您带来具有授予权限权限被拒绝之一的事件。如果您只想获取权限已授予 没有任何事件 == 被拒绝,请使用 takeWhile 运算符。只是也许您需要尝试这段代码一段时间,因为我还没有使用过这个库,而且可能有些东西的行为并不完全符合您的要求。

所以代码可能是这样的:

 RxPermissions
.getInstance(getActivity())
.requestEach(Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.CAMERA)
.takeWhile(permission -> permission.granted)
//or use take untill if you want to get permission.granted == false event
//.takeUntil(permission -> !permission.granted)
.subscribe(granted -> {
if (granted) {
dispatchCamera();
} else {
showError();
}
});

关于android - 如果未授予 RxPermissions,请避免征求他人许可,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41188176/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com