アプリ開発備忘録

PlayStationMobile、Android、UWPの開発備忘録

Overlayアプリを7.x→8.0→8.1と対応させる

7.x→8.0

startService
↓
startForegroundService
TYPE_PHONE
TYPE_PRIORITY_PHONE
TYPE_SYSTEM_ALERT
TYPE_SYSTEM_OVERLAY
TYPE_SYSTEM_ERROR
↓
TYPE_APPLICATION_OVERLAY

startForegroundは5秒以内に呼び出す。

これだけですね。TYPE_PHONEとかTYPE_SYSTEM_ALERTとかが全部TYPE_APPLICATION_OVERLAYになるんで上手く動くか心配でしたが変えるだけで動きました。

8.0→8.1

@Deprecated
public Builder(Context context)

public Builder(@NonNull Context context, @NonNull String channelId)

引数が2つになった方を使わないといけなくなりました。(使わないと落ちた)

dependencies {
    compile 'com.android.support:support-v4:27.0.2'
}
val id = "id"

val mNotificationManager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
mNotificationManager.createNotificationChannel(
    NotificationChannel(id, "名前", NotificationManager.IMPORTANCE_DEFAULT)
)
NotificationCompat.Builder(this, id)
//以下略