私は、画像が付属するプロジェクト用の簡単なアプリを作成しています。その上にボタンを押すと、画像が電話の壁紙になります。
これは私が行ったのですが、私のプロジェクトでは、アプリがアンインストールされた場合に壁紙を削除する必要があります。これを行うにはどうすればよいですか?
私は、画像が付属するプロジェクト用の簡単なアプリを作成しています。その上にボタンを押すと、画像が電話の壁紙になります。
これは私が行ったのですが、私のプロジェクトでは、アプリがアンインストールされた場合に壁紙を削除する必要があります。これを行うにはどうすればよいですか?
ここに画像を保存します。アプリをアンインストールすると、このフォルダは削除されます
の Android ドキュメンテーションをIntent
ACTION_PACKAGE_REMOVED
見ると、このブロードキャスト アクションは、自分のアプリケーション以外の他のアプリケーション(このブロードキャストを受信するように登録されている他のアプリ)によって受信されることがわかります。
developer.android.com サイトからの引用:
ブロードキャスト アクション: 既存のアプリケーション パッケージがデバイスから削除されました。データにはパッケージの名前が含まれています。インストールされているパッケージは、このインテントを受け取りません。
残念ながら、アプリは削除されたことを検出できないため、デバイスの壁紙を変更する特定の機能をトリガーすることはできません。可能であれば (実際にはそうではありません)、単純な関数 (コードは次のとおりです) によって、[壁紙の選択]セレクターがユーザーに表示されます。
Intent intent = new Intent(Intent.ACTION_SET_WALLPAPER);
startActivity(Intent.createChooser(intent, "Select Wallpaper"));
アプリケーションをアンインストールしたら、ユーザーが手動で変更する必要があります。
そうは言っても、アプリで作成したすべてのファイルの削除に関する限り、Android に任せてください。API に応じて、次のいずれかのオプションを使用します。
API 8 以上:getExternalCacheDir
API 7 以下: getExternalStorageDirectory
.
このようなものにより、デバイス API に応じてどちらを使用するかを決定できます。
int currentAPIVersion = android.os.Build.VERSION.SDK_INT;
if (currentAPIVersion >= android.os.Build.VERSION_CODES.ECLAIR) {
// USE getExternalStorageDirectory
} else {
// USE getExternalCacheDir
}