アプリケーションの自動更新の提供に取り組んでいます。FTP サーバーに接続し、apk をダウンロードして、Android パッケージ インストーラーを呼び出すことができます。ダウンロードしたapkの削除など、インストールプロセスの後に他の手順がリストされています。しかし、Android パッケージ インストーラーを呼び出すと、現在のスレッドが終了し、次のメッセージがスローされます。
「パーミッション android:permission.INSTALL_PACKAGES を package.com.csg.android に付与していません (protectionLevel =3 flags=0x8be46)」
私が抱えているこの問題を解決するために助けが必要です。これが発生する理由とそれらに対処する方法は?
どんな助けでも大歓迎です。
ありがとう、ナビン
編集:
投稿に対する最初のコメントを読んだ後、質問をもう一度明確にし、使用しているコードを追加すると思いました。
これがコードです`
File file = new File(getFilesDir(), filename);
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(file),
"application/vnd.android.package-archive");
startActivity(intent);
deleteFiles();
`
はい、INSTALL_PACKAGES の uses-permission タグも追加しました。
最初の投稿で述べたように、パッケージ インストーラーを呼び出すことができ、インストール プロンプトが表示され、インストール プロセスが正常に完了しました。しかし、私が抱えている問題は、私がコーディングしたインストール後の手順にあります。つまり、関数deleteFiles()の実行です。
私のスレッドはstartActivity(intent)を実行して終了します。これは、インストーラーをパッケージ化するためのコントロールを処理し、インストールプロセスを呼び出すと思います。logcat ログ ファイルをチェックして、スレッドが終了した原因を確認したところ、上記のprotectionLevelに関するメッセージが見つかりました。私は今、はっきりしていることを願っています。助けていただければ幸いです。
はい、他の投稿でこのprotectionLevelの問題を検索しましたが、それに関する情報は見つかりませんでした。
ありがとう、NavinC