监听手机来电与手机短信往蓝牙发送协议实现通讯

本文介绍了如何监听手机来电和短信,并通过特定的蓝牙协议将信息发送出去。首次分享博客,代码可能较为凌乱。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

因为公司主要做蓝牙手环这块。这阵子负责来电提醒和短信提醒。其实原理比较简单。就是开启一个Service监听手机的来电和短信。然后判断手机跟蓝牙的连接服务是是否连接,已连接的话则根据协议完手环发送来电、短信所需要的协议。不多说了。上代码。首先是Service类中的onCreate方法中注册手机来电和短信监听。监听我是用了TelephonyManager。短信我是用了SmsObserver。
tm  = (TelephonyManager)getSystemService(TELEPHONY_SERVICE);
        //创建一个监听器,监听电话呼叫状态的变化。
        myPhoneListener = new MyPhoneListener();
        //开始监听用户的通话状态
        tm.listen(myPhoneListener, PhoneStateListener.LISTEN_CALL_STATE);
        smsObserver = new SmsObserver(this, smsHandler);
        //注册一个内容观察者监听短信的变化
       getContentResolver().registerContentObserver(SMS_INBOX, true,
                smsObserver);

然后短信监听的话需要系统的一个Uri

 private Uri SMS_INBOX = Uri.parse("content://sms");

下面是一个电话监听类
private class MyPhoneListener extends PhoneStateListener{

        //当手机呼叫状态变化的时候 执行下面代码。
        //state 电话的状态
        //incomingnumber 来电号码
        @Override
        public void onCallStateChanged(int state, String incomingNumber) {
            try {
                //判断我们当前手机的通话状态
                switch (state) {
                    //手机处于空闲状态,没有人打电话 没有零响
                    case TelephonyManager.CALL_STATE_IDLE:

                        if (!"".equals(incomingNumber)) {
                           
                            if (BLEServiceHelper.getInstance().getService() == null) {

                                BLEServiceHelper.getInstance().getService().connect(EBLEService.BLEType.CLOSE_PHONE_NOTIFT, BaseApplication.getInstance().getUserInfo().getMacAddress());

                                new Handler().postDelayed(new Runnable() {
                                    @Override
                                    public void run() {
                                        BLEServiceHelper.getInstance().getService().writeData(true, GattAttributes.TO_GET
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值