ホームページ  >  記事  >  権限があるにもかかわらず、アプリケーションのディレクトリまたはファイルを作成できません

権限があるにもかかわらず、アプリケーションのディレクトリまたはファイルを作成できません

王林
王林転載
2024-02-22 13:28:14380ブラウズ

php エディター Strawberry は、Java プログラミングに関するよくある質問に答えます。権限があっても、アプリケーションのディレクトリやファイルを作成することはできません。この問題は、オペレーティング システムのアクセス許可設定、ファイル パスのエラー、既存のファイルなどで発生する可能性があります。ファイル パスを確認し、オペレーティング システムのアクセス許可を確認し、ファイルが存在しないことを確認することで、この問題を解決し、プログラムが正常に実行されることを確認できます。同様の状況に遭遇した場合は、上記の方法を試して問題を解決できるかどうかを確認してください。

質問内容

数年前に作ったアプリがあります。最近、ターゲット SDK を変更しても Play ストアにリストされるように、ほとんど変更を加えずに再コンパイルしました。

これにより、一部の携帯電話 (私の携帯電話を含む) ではアプリが根本的に機能しなくなることがわかりました。アップロードする前に、別の携帯電話でテストしましたが、正常に動作しました(Android バージョン 8.1.0)。私の携帯電話はAndroid 11を実行しています(動作しません)。

問題は、内部ストレージでファイルを作成および読み取る機能にあるようですが、アプリケーションの焦点は単一のファイルを維持することです。

これはディレクトリを作成しようとする関数です。これは作成時に呼び出す単なるテスト関数であり、元のアプリケーションの一部ではありません:

リーリー

問題は、ディレクトリが作成されず、例外もスローされないことです。アプリケーション情報にアクセスすると、ファイルとメディアの権限が表示されます。

ディレクトリの作成を試行するパスは次のとおりです: '/storage/emulated/0/this_is_a_test'

私の知る限り、これが正しいパスです。アプリは最初にインストールするときに許可を求めてきました。

では、なぜディレクトリを作成できないのでしょうか?問題を特定して修正するにはどうすればよいですか?

明確にするために、これとまったく同じ機能は Android 8.1.0 では動作しますが、Android 11 では動作しません。カットオフが何なのかはわかりません。

回避策

Android 11 デバイスの外部ストレージ ルートにファイルやディレクトリを作成することはできません。

代わりに、既存のパブリック ディレクトリの 1 つを使用してください。

DCIM、写真、ドキュメントなど...

以上が権限があるにもかかわらず、アプリケーションのディレクトリまたはファイルを作成できませんの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。