7

プログラムでSDカードにAPKをインストールするAndroidアプリケーションを取得しようとしましたが、少し問題が発生しています。

これが私がやっている方法です:

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

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

しかし、私が抱えている問題は、インストールの最後にユーザーが「Done」ではなく「Open」をクリックすると、マネージャーがまだ存在するため、「OnActivityResult」メソッドが呼び出されないことです....そしてこれが表示されますシステムの別の要件に関する別の問題。

ユーザーがパッケージマネージャーの最後で「開く」を選択したことを知る方法はありますか、またはマネージャーに表示したいボタンのみを強制的に表示させる方法はありますか?

本当にヘルプを使用できました。どこでも検索しましたが、解決策が見つからないようです

4

1 に答える 1

9

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
  }
}
于 2011-07-07T12:00:36.620 に答える