recherche

Maison  >  Questions et réponses  >  le corps du texte

android - 发送Intent安装应用时,如果获取应用安装的结果

需求:在应用中,能够获取推荐的应用列表,下载应用进行安装,且安装成功后会修改我当前的UI界面。

对于没有Root的机型,我的安装应用的方法就是下载APK到本地后,发送Intent请求,源码如下:

public static boolean installNormal(Context context, String filePath) {
    Intent intent = new Intent(Intent.ACTION_VIEW);
    File file = new File(filePath);
    if (!file.exists() || !file.isFile() || file.length() < 0) {
        return false;
    }

    LogUtil.e(TAG, "path=" + filePath);
    intent.setDataAndType(Uri.parse("file://" + filePath),
            "application/vnd.android.package-archive");
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    context.startActivity(intent);
    return true;
}

使用这种方式,我无法判断出用户最终是否选择安装了应用(因为用户可能取消安装),因此无法进行相关UI的修改。

所以,想问一下大家,使用intent的方法安装应用如何获取应用安装的结果?

我个人想了两种方式:

  1. 注册广播,但是使用广播是否应该动态注册?监听哪些intent?

  2. 写一个线程无限轮询,但是不清楚线程默认的结束时间等相关限制条件?

巴扎黑巴扎黑2889 Il y a quelques jours491

répondre à tous(3)je répondrai

  • 高洛峰

    高洛峰2017-04-17 17:55:44

    Écoutez les diffusions d'installation ou de mise à jour de l'application système
    <action android:name="android.intent.action.PACKAGE_ADDED" />
    <action android:name="android.intent.action. PACKAGE_REPLACED" />
    <action android:name="android.intent.action.PACKAGE_REMOVED" />
    <data android:scheme="package" />
    La dernière ligne doit être ajoutée, puis extraite de l'intention obtenue. les informations sur le package, intent.getDataString(), et voyez de quelle application il s'agit

    répondre
    0
  • 黄舟

    黄舟2017-04-17 17:55:44

    Peu importe si l'utilisateur clique sur Installer ou Annuler lorsqu'il passe à l'installation, il ira à onResume à son retour. Jugez ensuite l'état de l'installation dans onResume

    .

    répondre
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-17 17:55:44

    Si vous écrasez et installez l'apk actuel, vous ne pouvez pas le surveiller. Si vous installez d'autres programmes avec des noms de package différents de ce programme, la diffusion peut être surveillée. Vous devez vérifier l'IntentFilter spécifique. ce site officiel.

    répondre
    0
  • Annulerrépondre