Android允许您将活动链接到应用程序的“设置”页面中。只需为<intent-filter>
添加一个android.intent.action.APPLICATION_PREFERENCES
即可。Android的Settings应用程序将在你的应用程序中寻找拥有该<intent-filter>
的活动。如果设置找到一个,它将添加一个设备图标到您的应用程序的页面设置,如果用户点击设备,他们将被带到你指定的活动。
我担心安全问题,所以我提交了问题文件,寻找一个可以与android:permission
一起使用的权限,允许设置启动我们的活动,但不允许其他应用程序启动我们的活动(例如WRITE_SECURE_SETTINGS
)。
然后cketti指出了android:exported="false"
。令我惊讶的是,这是可行的。
设置应用程序如何启动标记为“未导出”的活动?
我当然可以看到有一个权限可以控制这一点。然而,快速阅读设置应用程序的清单(主支,N-开发者-预览-5分支)并没有发现任何明显的情况。
所以:
发布于 2016-08-19 18:34:45
我想清单中没有任何东西允许应用程序调用导出的活动。我相信它实现这一点的方式是在设置应用程序的LOCAL_PRIVILEGED_MODULE := true
文件中设置Android.mk。此标志将授予应用程序系统级权限,并在操作系统编译时将其放置在system/priv-app/
目录中。
如果查看frameworks/base/core/java/android/app/ActivityManager.java
的checkComponentPermission
方法,可以看到如果UID是系统的UID,则不管导出的设置如何,都授予组件权限。
https://stackoverflow.com/questions/39017482
复制相似问题