好的,所以不能完全确定这是可能的......
但是尝试编写一个应用程序,以便在执行以下任何活动之前运行一些代码。
1)APK从网络和市场推出安装程序
下载2)在Android市场上按下安装按钮
是否有可能拦截并提示这些事件,或者谷歌将这些事情锁定得非常紧张?
答案 0 :(得分:10)
这本身不是答案,但我在这里找不到任何评论工具。抱歉。 我也有这个问题。我希望能够检测到新的应用程序安装。我知道这是可能的 - 例如,应用程序到SD时会在您安装新应用程序时发布通知,单击该应用程序会打开一个对话框,将该新应用程序移动到SD卡。 到目前为止,我所能想到的就是这样: 的manifest.xml:
...
<receiver android:name=".IntentReceiver">
<intent-filter>
<action android:name="android.intent.action.PACKAGE_ADDED" />
<action android:name="android.intent.action.PACKAGE_REMOVED" />
<data android:scheme="package" />
</intent-filter>
</receiver>
...
IntentReciever.java:
public class IntentReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
context.startService(new Intent(context, YourService.class));
}
}
然后创建YourService并调用onCreate()然后调用onStartCommand()。但是,我无法对此进行调试或成功显示来自服务类的任何通知,因此我不完全确定这是否有效。我已经让它适用于其他接收器,如android.intent.action.BOOT_COMPLETED。
答案 1 :(得分:5)
使用BroadcastReceiver可以过滤android.intent.action.PACKAGE_ADDED意图。但是,这只会在您描述的两个动作之后,而不是之前。它不会停止或中断安装。
AFAIK之前无法做任何事情或打断市场。然后我们甚至在谈论另一个应用程序而不是正在安装的应用程序。
答案 2 :(得分:1)
您可以为Android应用编写自己的自定义安装程序,请访问此链接https://github.com/android-enhancement/android-alt-installer以获取进一步说明。