【问题标题】:Nativescript Android 8.0 READ_CALL_LOG FailedNativescript Android 8.0 READ_CALL_LOG 失败
【发布时间】:2018-11-23 07:44:13
【问题描述】:

使用 Nativescript 5.0。

以下代码在 Android 6.0.1 版中运行良好

但在 Android 8.0 中无法获得权限

未出现权限寻求消息框。

在这两款手机的权限细节中观察到的差异是,在 Android 8.0 中,附加权限被视为“通过联系人拨号”,无法手动设置。

Permissions.requestPermission(android.Manifest.permission.READ_CALL_LOG, "Needed for connectivity status").then(() => {
            console.log("refresh - Permission granted!");
            this.readCallLog();
            alert("in refresh Permission granted");
        }).catch(() => {
            console.log("Permission is not granted (sadface)");
            alert("in refresh Permission NOT granted");

        });

【问题讨论】:

    标签: nativescript android-permissions android-8.0-oreo


    【解决方案1】:

    尝试包含READ_PHONE_STATE 权限。

    但确切地说,Android 8 中没有任何改变,但 Android 9 引入了读取通话记录权限的重大更改,现在也需要手机状态权限才能工作。

    【讨论】:

    • 另外我也试过这些,但没有运气。 [android.Manifest.permission.READ_CALL_LOG,android.Manifest.permission.PROCESS_OUTGOING_CALLS,android.Manifest.permission.WRITE_CALL_LOG,android.Manifest.permission.READ_PHONE_STATE]
    • Manoj,是否有任何文档准备好让 Nativescript 在 Android 9 中访问权限?
    • 您必须参考官方的 Android 文档以了解 Android API 的重大更改。 Nativescript 将仅记录与框架相关的更改。
    【解决方案2】:

    虽然在早期的 Android 版本中,您可以请求权限 READ_CALL_LOG,但较新的 Android 版本正在对您请求用户通话记录的方式进行一些更改。这个想法是向用户提供更多信息,解释您为什么需要这些权限。

    应在 Andorid 资源中提供解释性字符串值

    <string name="permgroupdesc_calllog">read and write phone call log</string>
    <string name="permgrouprequest_calllog">Allow &lt;b>%1$s&lt;/b> to access your phone call logs?</string>
    

    此外,您还需要请求一些权限,而不仅仅是READ_CALL_LOG

    CALL_LOG
    READ_CALL_LOG
    WRITE_CALL_LOG
    ROCESS_OUTGOING_CALLS
    

    以上详情here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-08
      • 1970-01-01
      • 1970-01-01
      • 2022-11-05
      • 1970-01-01
      • 1970-01-01
      • 2019-02-25
      • 1970-01-01
      相关资源
      最近更新 更多