android - 发送Intent安装应用时,如果获取应用安装的结果
巴扎黑
巴扎黑 2017-04-17 17:53:44
0
3
455

需求:在应用中,能够获取推荐的应用列表,下载应用进行安装,且安装成功后会修改我当前的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. 写一个线程无限轮询,但是不清楚线程默认的结束时间等相关限制条件?

巴扎黑
巴扎黑

全員に返信(3)
小葫芦

システム アプリケーションのインストールまたはアップデートのブロードキャストをリッスンします
<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" />
最後の行は次のとおりです追加するには、取得したIntent、intent.getDataString()からパッケージ情報を抽出し、どのようなアプリケーションであるかを確認します

いいねを押す +0
黄舟

ユーザーがインストールに飛び出すときに [インストール] をクリックするか、[キャンセル] をクリックするかに関係なく、戻ってくると onResume に進み、onResume でインストール状況を判断します。

いいねを押す +0
伊谢尔伦

現在のapkを上書きしてインストールすると、このプログラムとは異なるパッケージ名を持つ他のプログラムをインストールすると、ブロードキャストを監視できるようになります。該当するIntentFilterを確認する必要があります。この公式ウェブサイト。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!