これをマニフェストに設定してみませんか:
android:installLocation="auto"
「auto」を宣言すると、アプリケーションが外部ストレージにインストールされる可能性があることを示しますが、インストール場所の設定はありません。システムは、いくつかの要因に基づいてアプリケーションをインストールする場所を決定します。ユーザーは、2 つの場所の間でアプリケーションを移動することもできます。
編集:
外部ストレージまたは内部ストレージが利用可能かどうかを確認しています:
boolean mExternalStorageAvailable = false;
boolean mExternalStorageWriteable = false;
String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state)) {
// We can read and write the media
mExternalStorageAvailable = mExternalStorageWriteable = true;
} else if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) {
// We can only read the media
mExternalStorageAvailable = true;
mExternalStorageWriteable = false;
} else {
// Something else is wrong. It may be one of many other states, but all we need
// to know is we can neither read nor write
mExternalStorageAvailable = mExternalStorageWriteable = false;
}