今天,Google云端硬盘应用询问我是否要安装新应用“表格和文档”。
我已经接受,希望它可以打开Google Play商店,这样我就可以按install了。
不是。它只是向我显示了具有每个应用程序权限的弹出窗口以确认安装,与您在Play商店中的任何应用程序上按“安装”时所显示的弹出窗口相同。
我不知道这可以做到。
我们如何在应用程序中重现此行为:有一个不需要打开Google Play商店的“安装应用程序XPTO”按钮?只是显示权限对话框,然后继续通过Play商店安装它?
更新:
对于那些投票失败的人,因为他们认为这与其他问题相同……不是!
在这种情况下,APK不会通过Google云端硬盘应用下载,然后再安装。 Google云端硬盘“告诉” Play商店进行下载和安装。
那就是我感兴趣的API。
支持我的情况:在不打开Play商店的情况下,按 INSIDE Google云端硬盘安装应用程序后,下载开始。在下载过程中,我已打开Play商店进行检查并:
屏幕截图证明不是Google云端硬盘下载并安装了APK。这是Play商店。
最佳答案
Google云端硬盘的日志显示,负责“告诉” Google Play商店安装应用的 Activity 是
com.google.android.apps.docs/com.google.android.apps.docs.app.PhoneskyApplicationInstallerActivity
显然是“告诉”
com.android.vending/com.google.android.finsky.billing.lightpurchase.LightPurchaseFlowActivity
安装所需的软件包。
因此,从理论上讲,可以创造一种意图
Intent intent = new Intent("com.android.vending.billing.PURCHASE");
intent.setClassName("com.android.vending",
"com.google.android.finsky.billing.lightpurchase.LightPurchaseFlowActivity");
intent.putExtra(EXTRA_NAME, EXTRA_VALUE);
startActivityForResult(intent, 0);
具有正确的附加值和外观!
但是,从非Google签名的应用程序调用
LightPurchaseFlowActivity
失败,因为显然(根据日志)它们又在检查调用程序包的签名:W/Finsky(13209): [1] LightPurchaseFlowActivity.setupFromExternalPurchaseIntent: Called from untrusted package.
因此,目前尚无法实现。