首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >设置应用程序如何启动应用程序的非导出活动?

设置应用程序如何启动应用程序的非导出活动?
EN

Stack Overflow用户
提问于 2016-08-18 11:50:41
回答 2查看 2.2K关注 0票数 15

Android允许您将活动链接到应用程序的“设置”页面中。只需为<intent-filter>添加一个android.intent.action.APPLICATION_PREFERENCES即可。Android的Settings应用程序将在你的应用程序中寻找拥有该<intent-filter>的活动。如果设置找到一个,它将添加一个设备图标到您的应用程序的页面设置,如果用户点击设备,他们将被带到你指定的活动。

我担心安全问题,所以我提交了问题文件,寻找一个可以与android:permission一起使用的权限,允许设置启动我们的活动,但不允许其他应用程序启动我们的活动(例如WRITE_SECURE_SETTINGS)。

然后cketti指出了android:exported="false"。令我惊讶的是,这是可行的。

设置应用程序如何启动标记为“未导出”的活动?

我当然可以看到有一个权限可以控制这一点。然而,快速阅读设置应用程序的清单(主支N-开发者-预览-5分支)并没有发现任何明显的情况。

所以:

  • 是否有允许应用程序启动另一个应用程序的非导出组件的权限?如果是,那是哪一个?
  • 如果没有,设置是如何完成这一任务的?
EN

Stack Overflow用户

回答已采纳

发布于 2016-08-19 18:34:45

我想清单中没有任何东西允许应用程序调用导出的活动。我相信它实现这一点的方式是在设置应用程序的LOCAL_PRIVILEGED_MODULE := true文件中设置Android.mk。此标志将授予应用程序系统级权限,并在操作系统编译时将其放置在system/priv-app/目录中。

如果查看frameworks/base/core/java/android/app/ActivityManager.javacheckComponentPermission方法,可以看到如果UID是系统的UID,则不管导出的设置如何,都授予组件权限。

票数 8
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39017482

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档