このような外部パスを取得したい場合、デバイスに Android 2.1 (api 7) がある場合
File f;
int sdkVersion = Integer.parseInt(Build.VERSION.SDK);
if (sdkVersion >= 8) {
System.out.println(">=8");
f = getApplicationContext().getExternalFilesDir(null);
} else {
System.out.println("<=7");
f = Environment.getExternalStorageDirectory();
}
LogCat には次のように表示されます。
05-25 15:44:08.355: W/dalvikvm(16688): VFY: unable to resolve virtual method 12: Landroid/content/Context;.getExternalFilesDir (Ljava/lang/String;)Ljava/io/File;
、しかし、アプリはクラッシュしません。VFYとは何ですか?仮想マシンの dalvik に、呼び出されたメソッド内のコードが有効かどうかをチェックするものはありますか? 現在のプロジェクトはAndroid 2.2に対してコンパイルされたため、Eclipseは文句を言いませんでしたが、実行時にLogCatエントリを取得します
PS:私は実際にはこのようなメソッドを使用していません.API <= 7またはAPI> = 8のクラスを初期化するヘルパークラスがあります..しかし、それでも答えてください!