問題タブ [android-11]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - requestLegacyExternalStorage が Android 11 で機能しない - API 30
Google は最近、スコープ ストレージなどの API 29 のストレージ API に関連するいくつかの変更を導入しました。しかし、SdkVersion 30 をターゲットにすると、これは機能しなくなったようです。この変更後、ダウンロード ディレクトリ内の一部のファイルが一覧表示されませんでした (File.listFiles)。
android - バックグラウンドでスケジュールされたジョブとアラームがキャンセルされる原因となる 1 回限りのアクセス許可
Android SDK を開発し、Android 11 Beta のテスト中に、まだ報告されていないように見える問題を発見しました。
Android 11 では、場所、マイク、カメラのアクセス許可に対して、新しい 1 回限りのアクセス許可が導入されました。このオプションを使用すると、ユーザーがアプリケーションを離れるとすぐに、権限が取り消されます (詳細については、こちらを参照してください)。
問題は、アプリがフォアグラウンドでなくなってからしばらくすると (アプリを強制終了する必要はありません。最小化するだけで十分です)、アプリが強制されたかのように、将来スケジュールされたすべてのアラームまたはジョブが削除されることです。殺された。これは、このレベルの権限でのみ発生します。他のレベルを拒否または提供すると、以前にスケジュールされたアラームまたはジョブが期待どおりに維持されます。これはベータ 3 ビルドで、RPB3.200720.005 ビルド番号の Pixel 2 エミュレーターで再現されています。このリポジトリでは、バグを再現するためのサンプル アプリを見つけることができます。
この 1 つのアクティビティ アプリは、次の 5 分でアラームを鳴らし、5 ~ 6 分の間にトリガーするジョブをスケジュールします。画面には 3 つのボタンがあり、それぞれが対応する許可要求をトリガーします。JobService クラスと BroadcastReceiver クラスは、トリガーされたことのみをログに記録します。この状況は、次の手順の後に再現できます。
- アプリが開始されるたびに、両方を実行
adb shell dumpsys alarm | grep com.example.permissions.app
しadb shell dumpsys jobscheduler | grep com.example.permissions.app
て、アラームとジョブの両方がスケジュールされていることを確認できます。 - いずれかのボタンをクリックして、1 回限りのアクセス許可レベルを付与します。
- アプリを最小化します (ホーム画面に移動するか、他のアプリを開くことができます);
- 約 1 分後、 と の両方
adb shell dumpsys alarm | grep com.example.permissions.app
を実行しadb shell dumpsys jobscheduler | grep com.example.permissions.app
ます。アラームとジョブは表示されなくなります。 - ジョブとアラームの両方の元のスケジュールされた時間 (システムの遅延を考慮して) を待機すると、それらがトリガーされないことが示されます。
同様の状況に遭遇した人はいますか?私たちの推測では、1 回限りのアクセス許可を取り消すために、これらの副作用を引き起こしている何らかの方法でアプリ プロセスが強制終了されています。また、 Android Issue Trackerに問題を提出しました。Google が回答した場合は、この投稿を更新し続けます。
android - Android Q (10) でアプリの内部ストレージから電話のダウンロード ディレクトリにファイルを移動するにはどうすればよいですか?
現在は廃止されているようgetExternalStoragePublicDirectory()
ですので、代替手段が必要です。
foo.png
アプリの内部ストレージにファイルがあるとします。このファイルに簡単にアクセスできます
私の問題は、このファイルをユーザーのダウンロード ディレクトリに移動して、電話で表示できるようにすることです。
この回答は を使用していDownloadManager
ます。残念ながら、これは私が自分で生成した画像であり、どこかからダウンロードしたものではありません。