【问题标题】:Android permissions not requested on installation安装时未请求 Android 权限
【发布时间】:2020-02-06 12:02:21
【问题描述】:

在此处发布之前,我已经搜索了类似的问题,但没有找到解决我问题的答案。 我的 manifest.xml 文件似乎是正确的,我希望用户被要求获得安装权限(不是运行时,它已经适用于我的代码)。我不知道为什么我放的参数不起作用:

<?xml version='1.0' encoding='utf-8'?>
<manifest android:hardwareAccelerated="true" android:name="VILES" android:versionCode="1" android:versionName="0.0.1" package="fr.nc.delegue.referendum" xmlns:android="http://schemas.android.com/apk/res/android">
    <supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="true" android:resizeable="true" android:smallScreens="true" android:xlargeScreens="true" />
    <application android:hardwareAccelerated="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:usesCleartextTraffic="true">
        <activity android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|smallestScreenSize|screenLayout|uiMode" android:label="@string/activity_name" android:launchMode="singleTop" android:name="MainActivity" android:theme="@android:style/Theme.DeviceDefault.NoActionBar" android:windowSoftInputMode="adjustResize">
            <intent-filter android:label="@string/launcher_name">
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
    <uses-feature android:name="android.hardware.telephony" android:required="false" />
    <uses-permission android:name="android.permission.RECEIVE_WAP_PUSH" />
    <uses-permission android:name="android.permission.RECEIVE_MMS" />
    <uses-permission android:name="android.permission.READ_SMS" />
    <uses-permission android:name="android.permission.WRITE_SMS" />
    <uses-permission android:name="android.permission.SEND_SMS" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.RECEIVE_SMS" />
</manifest>

我使用 Cordova(和 Quasar)构建我的应用程序,该应用程序运行良好,但我仍然遇到安装时未请求权限的问题... 任何人都可以告诉我我在这里做错了什么吗? 在此先感谢:)

【问题讨论】:

  • 您使用哪个 api 设备进行测试?
  • 我真正的智能手机之一(目前是 S9+)。

标签: android cordova android-manifest android-permissions


【解决方案1】:

除了期望不再可用的东西之外,您没有做错任何事情。具有targetSdkVersion23 或更高级别的应用程序完全脱离运行时权限运行——无法强制Play Store 或Android 在安装时提示用户许可。而且您不能使用旧的 targetSdkVersion 在 Play 商店(以及其他一些分发渠道)上分发您的应用。

【讨论】:

  • 感谢您的回答,我了解更多正在发生的事情。但是为什么在安装时会写“此应用程序不要求任何许可”?这很奇怪,因为当我运行应用程序时,会正确请求权限。
  • @djcaesar9114:“但是为什么在安装时会写“这个应用程序不需要任何许可”? -- 通常情况下,消息与此有点不同。
  • 其实这封邮件是法语的,所以我翻译成我认为应该是英文的;)
【解决方案2】:

当您请求许可时,您可以尝试添加 Splash Activity(第一个屏幕)。 当用户第一次安装应用程序时,他会看到一个屏幕,比如说设置屏幕或介绍屏幕,他将被要求获得许可。在您设置一个属性并且不会再次显示此屏幕之后。

【讨论】:

  • 感谢您在启动画面上的提示。
【解决方案3】:

将此添加到您的主要活动中,在创建方法上。

/*all permision need for this app*/
        int PERMISSION_ALL = 1;
        String[] PERMISSIONS = {
                Manifest.permission.READ_EXTERNAL_STORAGE,
        };


        /*check if the there is permission that is needed*/

        if (!hasPermissions(this, PERMISSIONS)) {
            ActivityCompat.requestPermissions(this, PERMISSIONS, PERMISSION_ALL);
        }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-14
    • 2016-11-12
    • 1970-01-01
    • 2016-08-17
    • 1970-01-01
    • 2019-09-20
    • 2017-11-07
    • 1970-01-01
    相关资源
    最近更新 更多