SDカードパスでまだ利用可能なアプリフォルダーをアンインストールすると、この問題に直面しています。
削除するにはどうすればよいですか?
それを実現するために何か提案してください...
SDカードパスでまだ利用可能なアプリフォルダーをアンインストールすると、この問題に直面しています。
削除するにはどうすればよいですか?
それを実現するために何か提案してください...
削除するにはどうすればよいですか?
外部ストレージ (「sdcard」) 上のファイルにgetExternalFilesDir()
および/またはを使用します。getExternalCacheDir()
これらのディレクトリは、アプリがアンインストールされると自動的に削除されます。
アプリが削除されると制御できないため、これ以上のことはできません。
残念ながら、簡単に言えば、答えは「いいえ、できません」です。
アプリがアンインストールされたときに聞くことができるブロードキャストが必要です。ただし、アンインストールしようとしているアプリケーションは、アンインストールのブロードキャストを取得しません。
デバイスの外部ストレージにフォルダーを作成した場合、ユーザーがアプリをアンインストールするときにコードを呼び出す方法はありません。
それを行う唯一の方法は、 を使用する場合getExternalCacheDir()
、アプリケーションのアンインストール時にフォルダーのみが自動削除されることです。
API レベル 8 以上をターゲットにしている場合はContext#getExternalFilesDir()
、外部ファイルに使用でき、それらはアンインストール時に削除されます。
いくつかの読み物: http://developer.android.com/guide/topics/data/data-storage.html#filesExternal
API レベル 8 以上を使用している場合は、getExternalFilesDir() を使用して、ファイルを保存する外部ストレージ ディレクトリを表すファイルを開きます。このメソッドは、DIRECTORY_MUSIC や DIRECTORY_RINGTONES など、必要なサブディレクトリのタイプを指定するタイプ パラメータを受け取ります (アプリケーションのファイル ディレクトリのルートを受け取るには null を渡します)。このメソッドは、必要に応じて適切なディレクトリを作成します。(...)
API レベル 7 以下を使用している場合は、getExternalStorageDirectory() を使用して、外部ストレージのルートを表すファイルを開きます。次に、次のディレクトリにデータを書き込む必要があります。
/Android/データ/「パッケージ名」/ファイル/
「package_name」は、「com.example.android.app」などの Java スタイルのパッケージ名です。
ユーザーのデバイスが API レベル 8 以上を実行していて、アプリケーションをアンインストールすると、このディレクトリとそのすべてのコンテンツが削除されます。
アプリをアンインストールするとコードを実行できないため、OS がクリーンアップを実行できるようにする必要があります。つまり、ファイルを SD カードのどこにでも置くことはできず、OS の規則に従う必要があります。
そのため、SD カードに独自のディレクトリ構造を作成するのではなく、書き込みファイルをgetExternalFilesDir()
およびの呼び出しによって返されるディレクトリに配置する必要がありgetExternalCacheDir()
ます。Android は、アンインストールを行うときに、これらのディレクトリの内容を自動的に削除します。