我正在尝试自己的Android应用程序许可。
对于这个我的android清单文件看起来像这样。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.hp.happybirthday" >
<permission
android:name="com.example.hp.happybirthday.PERM"
android:description="@string/pdesc"
android:label="@string/CAREFUL"
/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme"
android:permission="com.example.hp.happybirthday.PERM">
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
我面临的问题是我想拥有与此应用程序相关的自己的权限,因此我在应用程序标记下添加了如下所示的以下行,以便只有那些活动可以访问此应用程序所拥有的我明确的许可。
android:permission="com.example.hp.happybirthday.PERM"
但问题是,当我尝试运行我的应用程序时,我已声明其清单文件的应用程序,它显示错误应用程序未安装。
但是当我删除上面提到的行时,它可以工作,但是任何活动都可以访问我不想要的这个应用程序。
答案 0 :(得分:1)
当我尝试运行我的应用时,我已声明其清单文件的应用,它显示错误应用未安装
这是因为主屏幕是一个应用程序,主屏幕不保留您的自定义权限。因此,主屏幕无法启动启动器活动。
然后任何活动都可以访问我不想要的这个应用程序
首先,自定义权限do not work all that well。
其次,权限通常以比“此应用程序”更精细的粒度应用。您只需保护那些需要安全性的组件,并保留公共其他组件,例如启动器活动。
答案 1 :(得分:0)
您似乎已经定义了权限,并将其设置为必需...但您实际上并未将其授予您自己的应用。添加uses-permission tag