🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

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

Q&A

解決済

2回答

3024閲覧

AndroidアプリでSDカード内にアプリ固有のデータを保存したい

done12

総合スコア5

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

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

0グッド

3クリップ

投稿2019/12/06 02:43

Android8.1用のアプリを作成しています。
そのアプリではSDカード内にImageデータを保存する仕様なのですが
(私の環境ではSDカードのパスは/storage/sdcard1です。)
直接SDカードに書き込みができず、調べたところ/storage/sdcard1/Android/data/{パッケージ名}
の下であれば書き込めることがわかりました。
ただ、最初にアプリをインストールした直後は/storage/sdcard1/Android/dataまでのディレクトリは
あっても{パッケージ名}ディレクトリはない為、あらかじめファイルマネージャ等で{パッケージ名}ディレクトリ
を作成してからアプリを実行する形になってしまっています。
アプリの中で/storage/sdcard1/Android/data/{パッケージ名}ディレクトリを作成することはできないのでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

/storage/sdcard1/Android/data/{パッケージ名}ディレクトリを作成することはできないのでしょうか

基本的にそういうことはルート権限がないとできないし
私の端末はsdcard0だったりするので端末依存があります

以前はEnvironment.getExternalStorageDirectory().getPath()
を使ってパスが分かったのですがもう使えないようですね
dsuzukiさんの紹介記事をもう一度読んでみればわかるとおもいます

投稿2019/12/10 08:16

aja

総合スコア3733

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

done12

2019/12/10 23:35

やはり権限の問題でできないのですね。 dsuzukiさんの紹介記事をもう一度しっかり読んで見ます。
guest

0

ベストアンサー

投稿2019/12/06 11:21

dsuzuki

総合スコア1682

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

done12

2019/12/10 00:00

説明が不足していてすいません。 マニフェストファイルにはWRITE_EXTERNAL_STORAGEの記述はしています。 Runtime Permissionについてもチェックをしていて権限がある時のみ書き込むという 処理を記述していますが書き込めませんでした。
done12

2019/12/11 02:09

教えていただいた記事を再度参照してみたらできました。 Context#getExternalFilesDirでパッケージ名まで含めたディレクトリを作成、参照 することができるようになりました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問