首页 > 其他分享 >完整的Android使用Messenger实现跨app通信,设置api和sdk版本30以上,设置包可见性(Android11新增的),亲测可用

完整的Android使用Messenger实现跨app通信,设置api和sdk版本30以上,设置包可见性(Android11新增的),亲测可用

时间:2022-11-08 17:36:02浏览次数:44  
标签:app 30 Messenger 设置 msg import android os 客户端

服务端

package com.jay.msgapp2;

import android.app.Service;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.IBinder;
import android.os.Looper;
import android.os.Message;
import android.os.Messenger;
import android.os.RemoteException;
import android.util.Log;

public class BService extends Service {
    //记录下客户端发过来的 Messenger
    Messenger clientMessenger;
    //接受客户端发过来的消息
    Messenger messenger = new Messenger(new Handler(Looper.myLooper()) {
        @Override
        public void handleMessage(Message msg) {
            //客户端发送来的数据 msg 中还有齐他参数,客户端发送过来都可以拿到
            String clientData = msg.getData().getString("data");
            //客户端的 Messenger 对象
            clientMessenger = msg.replyTo;
            //发送数据返回给客户端
            sendMsgToClient();
            super.handleMessage(msg);
        }
    });
    //服务端绑定器
    @Override
    public IBinder onBind(Intent intent) {
        //绑定成功
        return messenger.getBinder();
    }
    //发送数据返回给客户端
    private void sendMsgToClient(){
        Message message = Message.obtain();
        Bundle bundle = new Bundle();
        bundle.putString("data","成功返回给客户端数据...");
        message.setData(bundle);
        try {
            clientMessenger.send(message);
        } catch (RemoteException e) {
            e.printStackTrace();
        }
    }
}

客户端

标签:app,30,Messenger,设置,msg,import,android,os,客户端
From: https://www.cnblogs.com/xsj1989/p/16870470.html

相关文章

  • 30_音视频播放器_解封装
    目录一、简介二、读出文件三、初始化3.1读取文件3.2初始化音频信息和视频信息3.3初始化解码器四、实现视频时长一、简介我们使用QT+ffmpeg实现一个播放器,这里我们主要......
  • ASEMI肖特基二极管SB30100LCT图片,SB30100LCT应用
    编辑-ZASEMI肖特基二极管SB30100LCT参数:型号:SB30100LCT最大重复峰值反向电压(VRRM):100V最大平均正向整流输出电流(IF):30A峰值正向浪涌电流(IFSM):200A每个元件的典型热阻(ReJA):2.5℃/......
  • xampp配置多域名泛域名虚拟主机For linux xampp wampp 多域名设置只有第一个生效的
     安装XAMPP下载xampp最新版FORLINUX#wget​​http://nchc.dl.sourceforge.net/sourceforge/xampp/xampp-linux-1.7.1.tar.gz​​安装:tarxvfzxampp-linux-1.7.1.tar.g......
  • uniapp计算两组经纬度之间距离
    //计算两组经纬度之间距离constGetDistance=(lat1,lng1,lat2,lng2)=>{ varradLat1=lat1*Math.PI/180.0; varradLat2=lat2*Math.PI/180.0; ......
  • day30面向对象(4)
    目录面向对象的魔法对象魔法方法笔试题元类简介创建类的两种方式元类定制类的产生行为元类定制对象的产生行为魔法方法之双下new设计模式简介面向对象的魔法对象魔法方法......
  • Python基础30
    今日内容概要面向对象之魔法方法基于魔法方法的笔试题元类简介创建类的两种方式元类定制类的产生行为元类定制对象的产生行为魔法方法之双下new方法设计模式简介......
  • [Appium] driver失效,报错:Session Identified by is unknown
    selenium.common.exceptions.InvalidSessionIdException:Message:Thesessionidentifiedby25030467-b3ad-4f74-a6ce-10f8ffab97c3isnotknownStacktrace:io.appium.......
  • Graphics Stack总结(四) 设置Mesa开发环境
    回顾上篇文章中我们提供了Mesasourcetree的概览,然后简介了几个主要的modules.现在我们将介绍setupmesa开发环境时会用到的几个小tips。DevelopmentenvironmentMesa......
  • nexus 部署与设置
    安装nexusdf-h先查看目录磁盘空间,我安装的版本占用了四个G空间,目录文件空间不够导致启动失败上传nexus压缩包,并解压查询8081端口号是否被占用sudonetst......
  • deepin配置系统设置
    在控制中心可以配置系统设置,最常用的就是代理。这个配置是由gsettings来管理的。循环列出所给的schema的key和valuegsettingslist-recursivelycom.deepin.wrap.gnome.s......