zun*_*ndi 5 android intentfilter in-app-purchase android-intent google-play
有些应用程序(例如https://play.google.com/store/apps/details?id=com.teslacoilsw.launcher)是免费的,但可以通过购买其他应用程序启用其付费功能(在这种情况下,这个https://play.google.com/store/apps/details?id=com.teslacoilsw.launcher.prime)
这是如何运作的?
我的猜测是免费应用程序启动一个显式的Intent,并可以通过try/catch结构检测应用程序是否存在.这样做的缺点是,创建具有相同包名称的应用程序并指定所有可能的Intent过滤器的人可以轻松地进行此操作.
这是它的工作原理,还是其他方式?
最简单的方法是从应用程序 A 针对应用程序 B 的 Activity 使用startActivityForResult(...),必须配置 IntentFilter 才能从外部应用程序使用。在 B 呼叫活动中,您还可以检查谁正在使用 呼叫getCallingActivity()。您可以在此处找到示例。
在启动 Activity 之前,您可以测试 B 是否已安装(使用 PackageManager),或者您可以启动 Activity 并捕获异常。
在被调用的Activity中,可以使用PackageManager.checkSignature(String,String)方法检查调用包的签名。传入A、B的包名,如果签名匹配,则执行逻辑。
| 归档时间: |
|
| 查看次数: |
157 次 |
| 最近记录: |