24

今夜、私は現在、簡単だと思っていた何かをするのに問題があります... / mnt/sdcardにフォルダを作成します。

私は次の許可を設定しました:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>

Main.javaはフォルダを作るために以下を持っています:

public class Main extends TabActivity {
    static int index = 1;
    private static final String TAG = "Main";       

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        File folder = new File(Environment.getExternalStorageDirectory () + "/tallgrass/images");
        boolean success = false;
        if(!folder.exists()){
            success = folder.mkdir();
        }
        if (!success){ 
            Log.d(TAG,"Folder not created.");
        }
        else{
            Log.d(TAG,"Folder created!");
        }
    }

「フォルダが作成されました!」ログにメッセージが表示されますが、両方を確認してもどちらにもフォルダが/mnt/sdcardありません。/sdcard私は電話をかけてみました:

Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())

そしてそれはtrueを返します。すべての兆候がそれが機能するはずであることを示しているので、私はこれを理解することができません。また、SDカードがマウントされている場合などに備えて、エミュレーターの代わりに携帯電話を開発に使用しているので、携帯電話をPCから切り離して試してみました。そういえば、フォルダを作成できないようにするためですかdebuggabletrue

ありがとう!

4

3 に答える 3

42

/mnt/sdcard/tallgrass/ディレクトリは存在しますか?(私は推測していませんが、あなたは決して知りません。)

このFile.mkdirs()メソッドは、必要なすべてのディレクトリを作成します。パス名の最後のmkdir()ディレクトリのみを作成します。

于 2011-05-11T02:38:48.723 に答える
0

次のように、アクセス許可をどこに配置するかを確認します。

 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
 package="edu.una.info.app">
   <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
   <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
   <uses-permission android:name="android.permission.CALL_PHONE" />

<application android:allowBackup="true"
    android:label="@string/app_name"
    android:icon="@drawable/ic_launcher"
    android:theme="@style/AppTheme">

    <activity
        android:name="edu.una.info.SplashScreenActivity"
于 2014-05-13T01:57:40.947 に答える
0

別のデバイスを使用してみてください。エミュレータデバイスに問題がありますが、Oneplus 5Tを接続すると、フォルダが作成されました(Oneplusには外部MicroSDがありません)。

しかし同時に、私のエミュレーター(Pixel 3)はフォルダーをまったく作成しません。

少なくともパーミッションはすべて良好です。

于 2020-05-16T04:40:20.157 に答える