我的钛合金应用程序没有请求打电话的许可.我的tiapp.xml list 标记中有以下XML:

<uses-feature android:name="android.permission.CALL_PHONE" android:required="false"/>

以下是我的JavaScript代码:

var permissionsToRequest = [];
var callPhonePermission = "android.permission.CALL_PHONE";
var hasCallPhonePermission = Titanium.Android.hasPermission(callPhonePermission);

if (!hasCallPhonePermission) {
    permissionsToRequest.push(callPhonePermission);
}

if (permissionsToRequest.length > 0) {
    Titanium.Android.requestPermissions(permissionsToRequest, function(e) {
        if (e.success) {
            Ti.API.info("SUCCESS");
        } else {
            Ti.API.info("ERROR: " + e.error);
        }
    });
}

这就是当我把手机连接到一台运行Android Studio的电脑上时,我在Logcat中看到的情况:

ERROR: Permission(s) denied: android.permission.CALL_PHONE

你知道我可能做错了什么吗?

推荐答案

您必须在tiapp.xml中使用<uses-permission android:name="android.permission.CALL_PHONE" />.这是一种许可,而不是一种功能.

下面是一个适用于我的完整例子:

const win = Ti.UI.createWindow();
win.addEventListener("open", function() {
    Titanium.Android.requestPermissions(["android.permission.CALL_PHONE"], function(e) {
        if (e.success) {
            Ti.API.info("SUCCESS");
        } else {
            Ti.API.info("ERROR: " + e.error);
        }
    });
})
win.open();

在请求权限之前,不需要首先判断权限.如果你已经有了它,它会立即转到成功分店.

Javascript相关问答推荐

如何使用JavaScript向html元素添加样式

单击按钮后未清除 Select

foreach循环中的Typescript字符串索引

*ngFor和@代表输入decorator 和选角闭合

如何使用侧边滚动按钮具体滚动每4个格?

被CSS优先级所迷惑

InDesign—创建一个独立的窗口,在文档中进行更正时保持打开状态

如何修复(或忽略)HTML模板中的TypeScript错误?'

你怎么看啦啦队的回应?

用于编辑CSS样式的Java脚本

加载背景图像时同步旋转不显示的问题

如何修复我的数据表,以使stateSave正常工作?

正则表达式,允许我匹配除已定义的子字符串之外的所有内容

如何将未排序的元素追加到数组的末尾?

JS Animate()方法未按预期工作

有没有一种直接的方法可以深度嵌套在一个JavaScript对象中?

无法重定向到Next.js中的动态URL

JWT Cookie安全性

用Reaction-RT-Chart创建实时条形图

如何在Web项目中同步语音合成和文本 colored颜色 更改