2

このコードでプログラムで apk をインストールしようとしています:

Intent intent = new Intent(Intent.ACTION_VIEW);
String mimetype = "application/vnd.android.package-archive";
intent.setDataAndType(Uri.fromFile(file), mimetype);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent); 

また、Samsung Galaxy Tab GT-P1000 を除くすべてのデバイスで問題なく動作します。

Galaxy Tab パッケージ マネージャーでインストールが開始されますが、終了することはありません。プログレスバーが無限に表示されます。バックキーでパッケージマネージャーを閉じた後、システムにインストールされているapkが少なくならないことを確認します。

ファイルマネージャーで起動するだけで同じapkをインストールしようとすると、すべて正常に動作します。APK のインストールとパッケージ マネージャーのインストールの進行状況は数秒で完了します。

では、プログラムでインストールするときにパッケージ マネージャーを正しく動作させるにはどうすればよいでしょうか?

4

2 に答える 2

0

これを実現するには、デバイスにインストールする apk を、それらをインストールするプロジェクトに含める必要があります。その後、インテントを使用してインストールを開始できます。

これをチェックしてください - http://www.androidsnippets.com/install-an-apk-via-intent

もう 1 つの方法は、ACTION_VIEW インテントを作成し、インテントの setDataAndType メソッドを使用することです。次に、コンテキストの startActivityForResult() メソッドを使用して APK をインストールします。

マニフェストで INSTALL_PACKAGES のユーザー許可も必要になる場合があります。

于 2012-03-02T15:28:17.460 に答える
0

問題は、Galaxy Tab タスク マネージャー固有のものでした。アプリのバグにより、100% CPU を使用していました。そして、タスク マネージャーが単にパッケージ マネージャーをオンにできなかったようです。CPU 100% のバグを修正した後、Package Manager が正しく動作するようになりました。

于 2012-03-13T10:03:45.937 に答える