我正在开发一个应用程序,该应用程序也可以从另一个应用程序启动。我们称它们为“被叫应用程序”和“调用应用程序”。我正在向具有保护级别“签名”的“被调用应用程序”的启动器 Activity 添加权限。但是,当我添加此权限时,我无法从应用程序图标启动“被调用的应用程序”。它说“应用程序未安装”。我也尝试过将保护级别设置为“危险”。它给出了相同的错误。
我认为问题可能是因为我向启动器 Activity 提供了自定义权限,而系统不知道这一点。当我删除权限后,我就可以启动该应用程序。我的问题是:未经任何许可离开启动器 Activity 是否安全?或者是否有其他方法来保护启动器 Activity ,以便我可以从应用程序图标以及“调用应用程序”正常启动“被调用应用程序”?
谢谢。
最佳答案
I suppose the issue could be because I have provided a custom permission to the launcher activity and system doesn't know about it.
不是“系统”——主屏幕。 Android 有数以千计的主屏幕实现,其中包括预安装的和可从 Play 商店等分发 channel 获取的。他们都没有 <uses-permission>
您的自定义权限的元素,因此它们都无法启动受该权限保护的 Activity 。
Is it safe to leave the launcher activity without any permission ?
我们怎么知道?您充其量是唯一知道此 Activity 的作用的人。您的问题类似于问“我的 Web 服务器拥有公共(public)主页是否安全?”。
Or Is there any other way to protect the launcher activity so that I can launch the "called app" normally from the app icon and also from the "calling app" ?
您的 Activity 可以通过以下方式开始:
任何东西(包括主屏幕),只要有
<intent-filter>
没有android:permission
属性,o仅由您编写的某些拥有自定义权限的应用程序通过
<intent-filter>
与android:permission
属性,或仅通过同一应用程序中的另一个 Activity ,通过没有
<intent-filter>
这是你的三个选择。除了您之外没有人可以告诉您这三个选择中哪一个适合此 Activity 。
但是,您需要了解威胁和风险,然后决定如何防范这些威胁,而不是随机输入与安全相关的内容并假设您正在做一些有用的事情。在这种情况下,如果您特别希望主屏幕能够启动此 Activity ,那么您从其他应用程序中看到能够启动此 Activity 的具体风险是什么?
关于android - 启动器 Activity 的权限。应用程序未安装错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31795618/