android - 启动器 Activity 的权限。应用程序未安装错误

标签 android android-permissions android-launcher

我正在开发一个应用程序,该应用程序也可以从另一个应用程序启动。我们称它们为“被叫应用程序”和“调用应用程序”。我正在向具有保护级别“签名”的“被调用应用程序”的启动器 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/

相关文章:

android - Google Goggles - Android 应用程序

Android - 在 Activity 的 onCreate() 中调用 setTitle() 时如何避免延迟

Android:如果应用程序从另一个应用程序打开,则 launchMode singleTop 不起作用

java - 将多个元素绘制到 Canvas 上

android - 如何编辑 Android 库 .class 文件

java - onRequestPermissionsResult 回调必须等待方法调用 requestPermissions 完成

android - 如何在不提示用户的情况下向 Android 应用程序授予运行时权限

android - 如何获取特定应用程序的可用 "app shortcuts"?

android - 使用android studio进行单元测试时运行哪个测试

android - 运行时权限第二次不起作用