创建自己的权限

jax*_*jax 6 android

是否可以使用<uses-permission>标记创建自己的权限 ?

像这样

<uses-permission android:name="com.android.myapp.INSTALL_LICENSE"></uses-permission>
Run Code Online (Sandbox Code Playgroud)

com.android.myapp我的包的名称在哪里,是INSTALL_LICENSE用户必须接受的权限

此外,我想将大量现有权限发布到这一权限中,因此客户端只需要声明一个权限,他们就可以获得INTERNET,PHONE_STATE和其他权限.

hac*_*bod 5

"此外,我想在这一个权限中发布大量现有权限".

不.这将故意引入安全漏洞,允许其他应用程序绕过实际权限.我希望这会导致应用程序从市场撤出,如果找到的话.

如果应用程序正在访问INTERNET,PHONE_STATE或其他任何内容,则需要声明他们正在使用的与该功能直接关联的真实权限.

什么好是有自己的权限来限制你的功能的应用程序访问,以及你自己的内部的apk您使用其他权限实现该功能......但直接暴露,为应用程序.

换句话说,这是可以的:声明DO_SOMETHING的权限,允许应用程序说你发送广播,你会做什么,并返回一个"true"或"false"结果,表明它是否成功.

这不合适:声明DO_SOMETHING的权限,该权限公开允许应用程序检索手机状态的API,或者发送他们从设备提供的一些数据,或检索GPS信息.

要在您的应用中声明权限,请使用文档中所述的标记.

但是,您确实需要注意一些事项:目前,如果您的应用程序之前安装了应用程序并请求您的许可,则不会授予该权限.(因为安装时未知该权限.)为了获得权限,需要在安装应用程序后重新安装或更新权限.


Sup*_*ver 5

是的,您可以声明自己的权限,如果其他应用想要使用您的应用,则应该声明您的许可.

例如,您在清单中声明以下内容:

<permission
    android:name="com.examples.permissionexample.MY_APP"
    android:description="@string/boom_perm_string"
    android:label="@string/boom_permission_label_string">
</permission>
Run Code Online (Sandbox Code Playgroud)

然后,在另一个应用中,访问您的应用的权限将是:

<uses-permission android:name="com.examples.permissionexample.MY_APP" />
Run Code Online (Sandbox Code Playgroud)


Chr*_*ton 2

不确定“使用标签”是什么意思,但您可以创建新权限来指定其他应用程序如何与您提供的活动和服务进行交互。

请参阅“声明和执行权限”:

http://developer.android.com/guide/topics/security/security.html