0

あるアプリでファイルを作成し、別のアプリで存在するかどうかを確認しようとしています。私が達成しようとしているのは、デバイス上の任意のアプリからアクセスできるキャッシュ内のグローバル ファイルです。私はこれを読みました: this and this one . しかし、私は迷っているようです。別のアプリからチェックするたびに新しいファイルが作成されます。最初のアプリでファイルが作成されましたか。

private boolean doesFileExist() {
        File file = new File(this.getCacheDir().toString() + "myfile");
        if(file.exists()) {
            return true;
        }
        else return false;
    }

    private void createFileForMe() {
        File file = new File(this.getCacheDir().toString() + "myfile", "myfile");
        file.setReadable(true, false);
        Log.v("FILE", "created file");
    }

public void onCreate() {
        super.onCreate();
            if (!doesFileExist()) {
                Log.v("FILE", "FILE DOESnt EXIST");
                createFileForMe();
            } else Log.v("FILE", "FILE DOES EXIST");
    }
4

1 に答える 1

0

の Android Javadoc は次のようにgetCacheDir()述べています。

ファイルシステム上のアプリケーション固有のキャッシュ ディレクトリへの絶対パスを返します。

これは、単一のアプリでのみ利用できることを意味します。同じメソッドは、2 番目のアプリケーションに対して別の場所を返します。これらのアプリは、前述の方法を使用してキャッシュを共有できません。

データを共有するには、別の場所を選択する必要があります。内部ストレージのスペースのほとんどは制限されていることに注意してください。内蔵の外部ストレージ (SD カードではなく論理的に外部) を使用する方がよい場合があります。

アップデート

2 つのオプションが表示されます。

于 2014-08-07T20:17:21.773 に答える