2017-09-08 10 views
1

以下は、私のstart.mp4ファイルのsdcardパスです。このファイルを読み取りモードで取得できますが、rwモードでは開くことができません。私は実行時の権限も与えています。rdモードのRandomAccessFileファイルは、sdカードにファイルを書き込む場合にのみ使用できません

/storage/3263-6232/piyush/Download/start.mp4: open failed: EACCES (Permission denied) 

コード:

String sdCardPath = "/storage/3263-6232/piyush/Download/start.mp4"; 
File file = new File(sdCardPath); 
try{ 

RandomAccessFile rfs = new RandomAccessFile(file, "rw"); 

rfs.seek(file.length()); 
rfs.close(); 

} catch (IOException e) { 
    e.printStackTrace(); 
} 

私はSDカード内に存在するファイルへsdcardpathをとっている上記のコードでは、例外がスローされます。

/storage/3263-6232/piyush/Download/start.mp4: open failed: EACCES (Permission denied) 
+0

を訪問することができます詳細について

。 '与えられた実行時権限'を定義します。そして、なぜ正確に.mp4ファイルへの書き込みアクセスが必要ですか? – EJP

+0

私はファイルを暗号化し、そのファイルの最初の10ビットを変更する必要があります。私は内部メモリではなく、SDカードで同じことをすることができます。 @EJP –

答えて

0

はあなたのManifestは次のようになりますか?A:それは私RandomAccessFileを使用して出力ストリームに、そのファイルを開こうとした時はいつでも、それはFilenotFound Exceptionを与える後よりも あなたがテストのためのポストMデバイスを使用している場合、あなたは、ファイル上の任意の操作を行う前にWRITE_EXTERNAL_STORAGE許可を求めることを確認してください。 uses-permissionタグは、アプリケーションタグ

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

PSの外にする必要があります。

1

上記のパスが唯一の関連するサードパーティのアプリケーションのための書き込みアクセス権を持って、別の場所にファイルを読むことができている/ <Your package Name> /ファイルはあなたの問題を解決します/ストレージ/ 3263から6232 /アンドロイド/データへのあなたの保存場所を変更新しいファイルを書き込むことはできません。

また、書き込みアクセス権を取得するためにStorage Access Frameworkを適用する必要があります。あなたはあなたがファイルへの書き込みアクセス権を持っていない https://developer.android.com/guide/topics/providers/document-provider.html

関連する問題