关于系统应用启动问题

2019-11-11 14:41:17 +08:00
 Icex

我将定制 apk 签名为系统应用(以下简称为 S 应用),并且放置于 system/app 文件夹下,机器重启时也顺利安装了; 但是由于 S 应用重未启动过,所以无法接收到系统的开机广播来完成自启。 于是我想到了使用用户 app 发送特定的广播,并为该广播加入 FLAG_INCLUDE_STOPPED_PACKAGES 特性,但是 S 应用还是未能接收到用户 app 发送的特定的广播。 如果 S 应用安装在 data/app 下,使用用户 app 发送的广播则能接受,是否是因为用户 app 发送的广播系统级别的应用时无法接收的?不可跨级通讯?

10229 次点击
所在节点    Android
6 条回复
ericcode
2019-11-11 15:03:57 +08:00
按理说,安装在 system/app 下边就可以搜到开机广播啊,你的 UID 是 1000 吗
frantic
2019-11-11 15:04:49 +08:00
我记得以前在哪看过 FLAG_INCLUDE_STOPPED_PACKAGES 对系统应用无效
F1ReKing
2019-11-12 09:25:27 +08:00
我也是用系统的签名加签,再放到 system/app 下,能够起来,对了,记得在 manifest 里面加 android:sharedUserId="android.uid.system",这样开机广播就会自动注册
Icex
2019-11-12 09:36:53 +08:00
@frantic 这样子,我在探索一下
Icex
2019-11-12 09:37:50 +08:00
@fireking 加了 android.uid.system 了,但是我的应用是只要一个服务的的应用
Icex
2019-11-13 10:43:41 +08:00
@ericcode 是的,uid 已经声明为 1000 了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/618433

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX