【问题标题】:ActivityCompat always undefined on android.support.v4.appActivityCompat 在 android.support.v4.app 上始终未定义
【发布时间】:2019-09-22 06:44:13
【问题描述】:

最近我创建了原生脚本 Angular 应用程序。我正在尝试获取 SMS 的读取权限,但出现以下错误

ERROR TypeError: Cannot read property 'requestPermissions' of undefined

(<any>android.support.v4.app.ActivityCompat).requestPermissions(app.android.context,
        [(<any>android).Manifest.permission.RECEIVE_SMS], REQUEST_REQUIRED_PERMISSIONS);

在 manifest.xml 中添加以下行

<uses-permission android:name="android.permission.RECEIVE_SMS"/>
<uses-permission android:name="android.permission.READ_SMS"/>

我已经尝试过 nativescript-permissions 插件,它工作正常,但我想尝试不使用插件

更新:工作代码

    const activity = app.android.foregroundActivity || app.android.startActivity;
    (<any>androidx.core.app.ActivityCompat).requestPermissions(activity,
        [(<any>android).Manifest.permission.RECEIVE_SMS], REQUEST_REQUIRED_PERMISSIONS);

    // or
    activity.requestPermissions(
        [(<any>android).Manifest.permission.RECEIVE_SMS], REQUEST_REQUIRED_PERMISSIONS);

【问题讨论】:

    标签: android nativescript angular2-nativescript nativescript-angular


    【解决方案1】:

    在 {N} 6 及更高版本中支持 AndroidX,android.support.v4.app.ActivityCompat 不再存在。应该是androidx.core.app.ActivityCompat

    【讨论】:

      【解决方案2】:

      可以直接与上下文obj一起使用

      context.requestPermissions(new String[] {
            Manifest.permission.RECEIVE_SMS
        }, REQUEST_REQUIRED_PERMISSIONS);
      

      【讨论】:

        猜你喜欢
        • 2021-11-21
        • 2011-12-16
        • 2021-12-28
        • 2020-10-14
        • 2017-06-26
        • 2016-06-21
        • 2020-05-07
        • 1970-01-01
        相关资源
        最近更新 更多