アンドロイド14対応
アンドロイド14で、自作のブロードキャスト レシーバーをアンドロイド システムに登録する時に、RECEIVER_EXPORTEDなどの指定が追加で必要に成りました。
――――――――――――――――――――
const val XXX_KEY = "xxxPackage.xxxAppli.XXX"
if (Build.VERSION_CODES.TIRAMISU <= Build.VERSION.SDK_INT) {
registerReceiver(xxxBroadcastReceiver, IntentFilter(XXX_KEY), RECEIVER_EXPORTED)
} else {
registerReceiver(xxxBroadcastReceiver, IntentFilter(XXX_KEY))
}
――――――――――――――――――――
アンドロイド14で、フォアグラウンドサービスを利用する場合は、フォアグラウンドサービスのタイプ(種類)の設定が追加で必要に成りました。
AndroidManifest.xmlの例の一部
――――――――――――――――――――
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK" />
――――――――――――――――――――
AndroidManifest.xmlの例の一部
――――――――――――――――――――
<service
android:name=".XxxService"
android:enabled="true"
android:exported="true"
android:foregroundServiceType="mediaPlayback"
>
<intent-filter>
<action android:name="android.media.browse.MediaBrowserService" />
</intent-filter>
</service>
――――――――――――――――――――
サービスの.ktファイルの例の一部
――――――――――――――――――――
class XxxService : MediaBrowserServiceCompat(), MediaPlayer.OnCompletionListener {
override fun onCreate() {
super.onCreate()
startForeground(1, notification, FOREGROUND_SERVICE_TYPE_MEDIA_PLAYBACK)
――――――――――――――――――――




