問題タブ [android-9.0-pie]
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.
android - ANDROID: 古い API レベルでは利用できない BroadcastIntent をどのように処理しますか?
コンテキスト: API レベル 28 でのみ使用できる新しいACTION_APP_BLOCK_STATE_CHANGEDブロードキャストを使用しようとしてIntent
います。通常、API レベル固有のコードを扱うときは、次のようにします。
しかし、 AndroidManifest.xmlBroadcastReceiver
ファイルに s が設定されているため、同様のことを行う方法がわかりません。
また、この例のように、 AndroidManifest.xmlBroadcastReceiver
で定義されているように、Android OS はインテントの受信と関連する呼び出しを処理するようです。しかし、私の懸念は、古い SDK (API レベル 26 Oreo など) で実行されているアプリケーションに対してそれを呼び出そうとするため、アプリケーションがクラッシュすることです。
API レベル固有の Broadcast を処理するにはどうすればよいIntent
ですか?
android - Android P の BroadcastReceiver
Android 9 はオンラインなので、 BroadcastReceiver を使用して起動した JobIntentService で通知を送信するのに問題があります。
Android <= 8.1 を搭載した他のデバイスでも問題なく動作し、すぐに通知を受け取ることができます。Android Pでも動作することがありますが、システムが AlarmManager で登録されたサービスを起動しないことがあります! または受信できません。
何がうまくいかないのですか?AlarmReceiver.java
AndroidManifest.xml の権限
ここでは、Receiver を AndroidManifest.xml に追加しました。
そして、JobIntentServiceから継承するクラス内で、この方法でサービスをAlarmManagerに登録しています
AppJobService.java
android - アプリが特定のユーザーの sqlite テーブルを見つけられない
会社の内部アプリのユーザーが sqlite クエリを実行していないという奇妙な問題が発生しています。次のエラーでクラッシュします。
intCol3
インストールしようとしてintCol4
いる新しいバージョンのこのテーブルに追加された新しい列です。ただし、削除するintCol3
とエラーが発生しintCol4
、それも削除すると、primaryKey に問題があります。
最初は、これは彼が自分の電話に Android 9 を持っている唯一のユーザーであることに関連していると思っていましたが、別の Android 9 デバイスで試してみると問題なく動作しました。彼が自分の Google アカウントをデバイスにリンクさせたのは、このクエリを破った 2 番目のようです。
アプリを新たにインストールし、すべてのアプリ データと彼の携帯電話にキャッシュされたものをすべてクリアしようとしましたが、それでもこの例外がスローされます。
また、ログインを試みるたびに「欠落」列を作成するようにコードに追加しようとしましたが、違いはありません。
誰かが似たようなものに出くわしたり、どこを見るべきかについて正しい方向に私を向けることができますか? これは私onCreate
とonUpgrade