質問編集履歴

2 番号がおかしかったので修正。

iti

iti score 10

2017/02/27 23:51  投稿

Androidエミュレータでファイルのパーミッションを変更したいです
お世話になります。itiと申します。
Android Studio 2.2.2に付属のAndroidエミュレータに
SDカードを作成し、そこにテキストファイルを設置して
読み込みたいと思っています。
しかし、設置したにも関わらずファイルを読み込もうとすると
見つからないと言われてしまいます。
そこで、ファイルのパーミッションを変更したいと思っています。
しかし、adb で shell を実行し、chmodを使用してパーミッション
を変更しようとしても変更できませんでした。
どのようにすればテキストファイルにアクセスできるようになります
でしょうか。
OSはAndroid 6.0を指定して作成しました。
試したこと)
1. Environment.getExternalStorageDirectory() でSDカードのパスを取得
1 Environment.getExternalStorageDirectory() でSDカードのパスを取得
→ 「/storage/emulated/0」 を取得
2. 「/storage/emulated/0」にテキストファイル「text.txt」を設置
2 「/storage/emulated/0」にテキストファイル「text.txt」を設置
3. 以下のプログラムを実行
3 以下のプログラムを実行
       File file = new File("/storage/emulated/0/text.txt");
       FileInputStream fis = null;
       try {
           fis = new FileInputStream(file);
       } catch (FileNotFoundException e) {
           e.printStackTrace();
       }
→FileNotFoundException が発生
  →FileNotFoundException が発生
4. ファイルのパーミッションを確認
4 ファイルのパーミッションを確認
「ADB shell」→ 「ls -al /storage/emulated/0」
 
----------------------------------------------------------------
-rw-rw---- root    sdcard_rw  270822 2017-02-27 19:44 text.txt
----------------------------------------------------------------
5. chmod でパーミッション変更
5 chmod でパーミッション変更
chmod 666 /storage/emulated/0/text.txt
6. 再びパーミッションを確認
特にメッセージ等は無し。(エラーや成功といったものも)
6 再びパーミッションを確認
ls -al /storage/emulated/0
 
----------------------------------------------------------------
-rw-rw---- root    sdcard_rw  270822 2017-02-27 19:44 text.txt
----------------------------------------------------------------
よろしくお願い致します。
  • Android

    8090 questions

    Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

1 連番がなぜか途中から1番になってしまったので修正しました。。。

iti

iti score 10

2017/02/27 21:52  投稿

Androidエミュレータでファイルのパーミッションを変更したいです
お世話になります。itiと申します。
Android Studio 2.2.2に付属のAndroidエミュレータに
SDカードを作成し、そこにテキストファイルを設置して
読み込みたいと思っています。
しかし、設置したにも関わらずファイルを読み込もうとすると
見つからないと言われてしまいます。
そこで、ファイルのパーミッションを変更したいと思っています。
しかし、adb で shell を実行し、chmodを使用してパーミッション
を変更しようとしても変更できませんでした。
どのようにすればテキストファイルにアクセスできるようになります
でしょうか。
OSはAndroid 6.0を指定して作成しました。
試したこと)
1. Environment.getExternalStorageDirectory() でSDカードのパスを取得
→ 「/storage/emulated/0」 を取得
 
2. 「/storage/emulated/0」にテキストファイル「text.txt」を設置
 
3. 以下のプログラムを実行
       File file = new File("/storage/emulated/0/text.txt");
       FileInputStream fis = null;
       try {
           fis = new FileInputStream(file);
       } catch (FileNotFoundException e) {
           e.printStackTrace();
       }
→FileNotFoundException が発生
 
4. ファイルのパーミッションを確認
「ADB shell」→ 「ls -al /storage/emulated/0」
----------------------------------------------------------------
-rw-rw---- root    sdcard_rw  270822 2017-02-27 19:44 text.txt
----------------------------------------------------------------
5. chmod でパーミッション変更
chmod 666 /storage/emulated/0/text.txt
6. 再びパーミッションを確認
ls -al /storage/emulated/0
----------------------------------------------------------------
-rw-rw---- root    sdcard_rw  270822 2017-02-27 19:44 text.txt
----------------------------------------------------------------
よろしくお願い致します。
  • Android

    8090 questions

    Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る