質問

Androidアプリケーションを取得してSDCardにプログラムでAPKをインストールしようとしていますが、少しトラブルに遭っています。

これが私がそれをしている方法です:

Intent intent = new Intent(Intent.ACTION_VIEW);           
intent.setDataAndType("ApkFilePath...","application/vnd.android.package-archive");
activity.startActivityForResult(intent,5000);

これで問題なく動作すると、パッケージマネージャーがもたらされ、マネージャーがAPKのインストールを終了したときに何をすべきかを制御できます。

しかし、私が抱えている問題は、インストールの終了時にユーザーが「onactivityresult」メソッドの代わりに「開く」をクリックすると、マネージャーがまだ存在するため、これが提示されます。システム上の別の要件に関する別の問題。

パッケージマネージャーの最後にユーザーが「オープン」を選択した時期を知る方法はありますか、それともマネージャーに表示したいボタンのみを表示するように強制する方法はありますか?

本当に助けを使うことができます、私はどこでも検索し、解決策を見つけていないようです

役に立ちましたか?

解決

レシーバーを追加できます AndroidManifest.xml 新しいアプリがインストールされている場合は、放送を聴くため。このような:

<receiver android:name=".PackageReceiver">
    <intent-filter>
        <action android:name="android.intent.action.PACKAGE_ADDED" />
        <action android:name="android.intent.action.PACKAGE_CHANGED" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:scheme="package" />
    </intent-filter>
</receiver>

このクラスは、新しいパッケージがインストールされたときに呼び出されます。

public class PackageReceiver extends BroadcastReceiver {

  @Override
  public void onReceive(Context context, Intent intent) {
    // handle install event here
  }
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top