问题描述
我在 Miui 12.1.4 Android 11 中的位置权限提示有问题。它没有显示是否有 PermissionsAndroid.PERMISSIONS.ACCESS_BACKGROUND_LOCATION。另外,我控制台记录了结果,它给了我这个...... android.permission.ACCESS_BACKGROUND_LOCATION": "denied","android.permission.ACCESS_FINE_LOCATION": "never_ask_again"}
这是我的代码...
const granted = systemVersion > 9 ? await PermissionsAndroid.requestMultiple([
PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION,PermissionsAndroid.PERMISSIONS.ACCESS_BACKGROUND_LOCATION,]) : await PermissionsAndroid.requestMultiple([ PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION ])
当我删除 PermissionsAndroid.PERMISSIONS.ACCESS_BACKGROUND_LOCATION 时,位置权限显示但没有“始终允许”选项。如何解决这个问题?谢谢!
解决方法
即使您将 const util = require('util');
const request = require('request-promise');
const setTimeoutPromise = util.promisify(setTimeout);
const AbortController = require('abort-controller');
const ac = new AbortController();
const signal = ac.signal;
async function start_sequence(appID,timelimit) {
setTimeoutPromise(timelimit,{ signal })
.then((value) => {
console.log('My code here when timeout ends!');
})
.catch((err) => {
if (err.name === 'AbortError')
console.log('The timeout was aborted');
});
function cancel_is_called(data) {
ac.abort();
}
function main_program() {
start_sequence("app_aaa",33) // the first timeout session
start_sequence("app_bbb",1231) // the second timeout session
start_sequence("app_ccc",4) // ...
}
添加到要请求的权限列表中,系统也会忽略它。
如果应用程序需要在后台使用位置。为此,您必须准备自己的对话框,其中包含一条解释使用背景位置的明确消息。
用户同意后,将他带到应用程序的设置页面,他可以在其中选择要授予的权限级别。
阅读此Article了解更多详情