我正在开发一个也可以从其他应用启动的应用。让我们称他们为“Called app”和“Calling app”。我正在使用protectionLevel“signature”为“被叫应用程序”的启动器活动添加权限。但是,当我添加此权限时,我无法从应用程序图标启动“被叫应用程序”。它说“未安装应用程序”。我也试过保护级别“危险”。它给出了同样的错误。
我想这个问题可能是因为我已经为启动器活动提供了自定义权限,系统也不知道它。删除权限后,我可以启动该应用。我的问题是:未经许可离开发射器活动是否安全?或者有没有其他方法来保护启动器活动,以便我可以正常从应用程序图标和“调用应用程序”启动“被叫应用程序”?
感谢。
答案 0 :(得分:2)
我想这个问题可能是因为我已经为启动器活动提供了自定义权限,系统也不知道它。
不是“系统” - 主屏幕。 Android上有成千上万的主屏幕实现,包括预安装和Play Store等分销渠道。他们都没有<uses-permission>
元素用于您的自定义权限,因此他们都无法启动您通过该权限进行辩护的活动。
未经许可离开发射器活动是否安全?
我们怎么知道?你充其量是唯一知道这项活动的人。您的问题类似于询问“我的Web服务器是否安全拥有公共主页?”。
或者是否有其他方法来保护启动器活动,以便我可以从应用程序图标和“调用应用程序”正常启动“被叫应用程序”?
您的活动可以通过以下方式启动:
任何内容(包括主屏幕),<intent-filter>
和android:permission
属性,
仅限您撰写的某个包含自定义权限的应用,具有<intent-filter>
属性android:permission
或
仅限同一应用中的其他活动,没有<intent-filter>
这是你的三个选择。没有人可以告诉你这三种选择中哪一种适合这项活动。
但是,您需要了解威胁和风险,然后决定如何防范这些威胁,而不是随机输入与安全相关的内容,并假设您正在做一些有用的事情。在这种情况下,如果您特别希望主屏幕能够启动此活动,那么您从其他应用程序能够启动此活动的具体风险是什么?