0

アプリケーションの自動更新の提供に取り組んでいます。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

4

1 に答える 1

0

<uses-permission android:name="android.permission.INSTALL_PACKAGES"/>マニフェストに追加しましたか?

于 2011-05-20T16:41:46.623 に答える