Android - 如何拦截"安装应用程序"的意图

Pau*_*ent 14 android android-intent apk google-play

好的,所以不能完全确定这是可能的......

但是尝试编写一个应用程序,以便在执行以下任何活动之前运行一些代码.

1)APK从网络和市场发布安装程序下载

2)在Android市场上按下安装按钮

是否有可能拦截并提示这些事件,或谷歌是否将这些东西锁定得非常严格?

pro*_*aea 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>
...
Run Code Online (Sandbox Code Playgroud)

IntentReciever.java:

public class IntentReceiver extends BroadcastReceiver {
  @Override
  public void onReceive(Context context, Intent intent) {
    context.startService(new Intent(context, YourService.class));
  }
}
Run Code Online (Sandbox Code Playgroud)

然后创建YourService并调用onCreate()然后调用onStartCommand().但是,我无法对此进行调试或成功显示来自服务类的任何通知,因此我不完全确定这是否有效.我已经让它适用于其他接收器,如android.intent.action.BOOT_COMPLETED.

  • 我添加了PACKAGE_REMOVED和<data />标签.一旦这些在我的清单中,我的应用程序在安装或删除任何应用程序时都会正确报告.请参阅:http://groups.google.com/group/android-developers/browse_thread/thread/14589d5e0761c056和http://developer.android.com/guide/appendix/faq/framework.html#7 (5认同)

pjv*_*pjv 5

使用BroadcastReceiver可以过滤android.intent.action.PACKAGE_ADDED意图.但是,这只会在您描述的两个动作之后,而不是之前.它不会停止或中断安装.

AFAIK之前无法做任何事情或打断市场.然后我们甚至讨论另一个应用程序而不是正在安装的应用程序.