(我有一个带有AIDL接口的远程服务,由几个客户端应用程序使用.我想在接口上添加一个异步方法,用于需要一些时间的调用,但我需要解决方案是安全的,这意味着只有我的应用程序可以与服务进行通信.客户端应用程序使用与服务应用程序相同的签名进行签名.目前,应用程序只绑定到服务并调用单个接口方法来执行各种操作.
一种选择是在操作完成时从服务广播Intent并在客户端应用程序中使用BroadcastReceiver,但(问题#1)是否可以确保只有我的应用程序可以接收Intent?setPackage()似乎是这样做的,但是我需要支持Gingerbread设备,这似乎排除了根据答案的方法:setPackage用于姜饼的意图
因此,似乎我需要添加第二个.aidl接口和服务使用的回调接口,由客户端实现.我已经看到了在这里使用侦听器的示例,但我不确定与客户端仅将第二个接口对象作为参数传递有什么区别(如此答案中的IScript/IScriptResult示例中所使用的:服务调用返回到活动中android)
问题#2,在这里使用监听器与回调方法有什么好处?
我有一个系统应用程序,OEM安装系统映像,但由我签名.如果我将更新的apk上传到市场,市场应用程序是否会自动安装此更新?
如果我的系统应用程序使用平台签名而不是我的签名,这意味着任何更新也必须使用平台签名进行签名,对吗?可以从市场更新平台签名的apk吗?