이번 8월 31일부터 스토어 정책 상 안드로이드 os 13 타겟팅이 필수 항목으로 변경됩니다. 😂
따라서 os 12 와 os 13 타겟팅을 대응하시는 분들이 많을텐데요!
MQTT 라이브러리 (org.eclipse.paho.android.service.MqttService) 를 사용하고 계신 분들!
MQTT 라이브러리를 새로이 적용하시는 분들은 아래 에러 메시지를 보실 수 있습니다 😅
java.lang.IllegalArgumentException: app id: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent.
Strongly consider using FLAG_IMMUTABLE, only use FLAG_MUTABLE if some functionality depends on the PendingIntent being mutable, e.g. if it needs to be used with inline replies or bubbles.
안드로이드 os 12 이상을 타겟팅하는 앱은 PendingIntent 의 flag 에 변경 가능 여부 flag를 뜻하는 FLAG_IMMUTABLE 나 FLAG_MUTABLE 를 추가해야합니다.
에러 메시지 내용에 따라 'PendingIntent' 의 flag 를 변경해주어야 하는데요..
문제가 되는 부분은 MQTT 라이브러리의 아래 코드입니다.😥
@Override
public void start() {
//...
pendingIntent = PendingIntent.getBroadcast(service, 0, new Intent(
action), PendingIntent.FLAG_UPDATE_CURRENT);
//...
}
네.. 원격 저장소를 통해 받은 라이브러리이므로 수정을 할 수 없으니 두가지 선택지가 있습니다.
두번째 방법은 있을 수 없는 일이므로 첫번째 방법을 수행해야겠죠?
첫번째 방법을 위해 GitHub 의 어느 한 귀인께서! PendingIntent 만을 수정한 라이브러리를 배포해주셨습니다.👏👏👏
Github 주소🔥
https://github.com/hannesa2/paho.mqtt.android
심지어 StackOverFlow 의 어느 귀인께서는 마이그레이션 방법까지 친히 알려주시네요🔥
https://stackoverflow.com/a/71839305
유용하셨다면.. 개발자들의 삽질 시간을 아껴주시는 이 고마운 귀인분들께 감사 인사와 함께 GitHub Star 를 눌러봅시다🌠🌠🌠🌠
https://github.com/hannesa2/paho.mqtt.android 이것을 어디로 다운로드 받아야 하나요?