eclipse.paho mqtt适配安卓14

问题描述:Android paho mqtt crashes Android 12 - Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE

解决方法:

  1. 打开 org.eclipse.paho:org.eclipse.paho.android.service:1.1.1,下载zip,解压

  2. 将org及以下所有文件拷贝到Android目录下
    在这里插入图片描述在这里插入图片描述

  3. 将gradle中引用的org.eclipse.paho:org.eclipse.paho.android.service:1.1.1注释掉,其他保留
    在这里插入图片描述

  4. 打开如图两个文件,将原来的引用:import android.support.v4.content.LocalBroadcastManager;改成import androidx.localbroadcastmanager.content.LocalBroadcastManager;
    在这里插入图片描述

  5. 其中,MqttAndroidClient还需要实现三接口,鼠标悬浮在爆红上,选自动生成即可

  6. 修改该文件
    在这里插入图片描述

// 安卓12及其以上需要适配
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.S) {
	pendingIntent = PendingIntent.getBroadcast(service, 0, new Intent(
			action), PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE);
} else {
	pendingIntent = PendingIntent.getBroadcast(service, 0, new Intent(
			action), PendingIntent.FLAG_UPDATE_CURRENT);
}
  1. 结束
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐