【问题标题】:confusion in using android:permission for android.permission.RECEIVE_BOOT_COMPLETED使用 android:permission for android.permission.RECEIVE_BOOT_COMPLETED 的困惑
【发布时间】:2015-07-19 00:13:10
【问题描述】:

请查看以下 Maniferst.xml 文件

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="pack.saltriver" 
    android:versionCode="1" 
    android:versionName="1.0"
    android:permission="android.permission.RECEIVE_BOOT_COMPLETED">


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

    <application android:icon="@drawable/icon" android:label="@string/app_name">

        <receiver android:name=".autostart">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
            </intent-filter>
        </receiver>

        <activity android:name=".hello"></activity>
        <service android:enabled="true" android:name=".service" />
    </application>
 </manifest>

我真的需要两个都用吗

android:permission="android.permission.RECEIVE_BOOT_COMPLETED">

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

它们之间有什么区别?

【问题讨论】:

标签: android broadcastreceiver android-permissions


【解决方案1】:

不,像这样更改清单

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="pack.saltriver" 
    android:versionCode="1" 
    android:versionName="1.0">


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

    <application android:icon="@drawable/icon" android:label="@string/app_name">

        <receiver android:name=".autostart">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
            </intent-filter>
        </receiver>

        <activity android:name=".hello"></activity>
        <service android:enabled="true" android:name=".service" />
    </application>
 </manifest>

这就是为什么我们有这些的答案..documentation

声明可用于限制访问此应用程序或其他应用程序的特定组件或功能的安全权限。

因此,由于您正在访问 Android 的权限,因此您需要使用 uses-permission。该元素的文档指出:

请求必须授予应用程序才能正常运行的权限。

通常在创建自定义权限时使用(例如,在创建其他应用程序可以绑定的应用程序时,必须限制访问权限),并且在您的应用程序实际上需要它通常没有的权限时使用。

【讨论】:

    【解决方案2】:

    使用权限就够了,不需要在manifest标签中写权限。

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="pack.saltriver" 
        android:versionCode="1" 
        android:versionName="1.0">
    
    
    
       <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission>
    
        <application android:icon="@drawable/icon" android:label="@string/app_name">
    
            <receiver android:name=".autostart">
                <intent-filter>
                    <action android:name="android.intent.action.BOOT_COMPLETED" />
                </intent-filter>
            </receiver>
    
            <activity android:name=".hello"></activity>
            <service android:enabled="true" android:name=".service" />
        </application>
     </manifest>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-02-22
      • 1970-01-01
      • 2023-03-29
      • 2011-03-26
      • 1970-01-01
      • 2020-04-16
      • 2011-01-26
      • 2020-03-07
      相关资源
      最近更新 更多