【问题标题】:Android - How to intercept the 'Install application' intentAndroid - 如何拦截“安装应用程序”意图
【发布时间】:2010-08-18 09:15:12
【问题描述】:

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

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

1) APK 从网络和市场启动安装程序下载

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

是否可以拦截并提示这些事件,或者 Google 是否已将这些内容锁定得非常严密?

【问题讨论】:

    标签: android android-intent google-play apk


    【解决方案1】:

    这本身不是答案,但我在这里找不到任何评论工具。对不起。 我也有这个问题。我希望能够检测到新的应用程序安装。我知道这是可能的 - 例如,应用程序到 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。

    【讨论】:

    【解决方案2】:

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

    AFAIK 没有办法在市场之前做任何事情或中断市场。当然,我们甚至在谈论另一个应用程序,而不是正在安装的应用程序。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-24
      • 2019-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多