2 hitwhlxy hitwhlxy 于 2014.12.12 00:40 提问

Android 关于PackageInstaller,如何阻止弹出“未知源”对话框的问题

每次从应用商城下载应用时,都会弹出“为了安全,禁止未知源”的选项,我想把他去掉。
看了一下代码,PackageInstallerActivity.java中,如何判断调进来的为应用商城呢?(我做的目的是应用商城不弹,其他应用调用PackageInstallerActivity弹),请教各路大神。
我尝试了下面几种方法,都完败
1.通过getCallingPackage(),发现得到的是null
2.想通过后去调用者进程号的方法,判断调用者进程是否为应用商城的。在ActivityStack.java中,startActivityLocked()函数调用了Intent唤起PackageInstallerActivity,在其中可以看到进程id,Slog.i(TAG, "START {" + intent.toShortString(true, true, true) + "} from pid "
+ (callerApp != null ? callerApp.pid : callingPid));
我把进程id放到这个intent中(putEtra)传到PackageInstallerActivity,这样PackageInstallerActivity可以收到我发送的进程pid,可以不弹框了,但是PackageInstallerActivity闪退。。。。好像是找不到PackageInstallerActivity apk内的某个class,
肿么办啊?

3个回答

save4me
save4me   Ds   Rxr 2014.12.12 10:10

参考android第三方应用安装来源设置分析
还有一种方法是给应用加上系统的签名,这样也不会弹出提示框,参考在Android中静默安装应用
Android PackageInstaller 静默安装的实现

save4me
save4me   Ds   Rxr 2014.12.18 09:40

上面的答案有帮助吗?如果还有问题,请提出来,如果对答案满意,请顶一下,并标记为采纳答案,谢谢!

leelizebo
leelizebo   2017.05.31 16:09

楼主,问题解决了吗?

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!