Android蓝牙读取短信调研
对“直接通过蓝牙来获取连接手机的短信信息”这个需求做了一些技术调研,如下是调研过程中的一些记录。
1、无法得到BluetoothMasClient类
在文章https://blog.csdn.net/u012439416/article/details/54349812(蓝牙map协议源码解析)这篇文章中有提到通过MAP方式来实现蓝牙读取短信,其中有个比较关键的类BluetoothMasClient,但在API-27(Android8.1)及以上系统都无法获取到。
(1)API-27上无法直接引用BluetoothMasClient类
在系统源码frameworks\opt\bluetooth\src\android\bluetooth\client\map下可以找到该类,引用路径为"android.bluetooth.client.map.BluetoothMasClient",使用时发现无法引用这个类。

(2)在API-27(Android8.1)无法通过反射获取到BluetoothMasClient类
通过反射的方式,也无法获取到该类。测试代码:
public void getBluetoothMasClient() {
Log.d(TAG, "testGetHide");
try {
Class<?> c = Class.forName("android.bluetooth.client.map.BluetoothMasClient");
Log.d(TAG, "name=" + c.getName());
} catch (ClassNotFoundException e) {
Log.d(TAG, "e=" + e.getMessage());
e.printStackTrace();
}
}
运行结果:
W/System.err: java.lang.ClassNotFoundException: android.bluetooth.client.map.BluetoothMasClient
W/System.err: at java.lang.Class.classForName(Native Method)
W/System.err: at java.lang.Class.forName(Class.java:453)
W/System.err: at java.lang.Class.forName(Class.java:378)
W/System.err: at com.example.demo.sms.BTActivity.testGetHide(BTActivity.java:489)
W/System.err: at com.example.demo.sms.BTActivity.onCreate(BTActivity.java:73)
W/System.err: at android.app.Activity.performCreate(Activity.java:7050)
W/System.err: at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1214)
W/System.err: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2809)
W/System.err: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2931)
W/System.err: at android.app.ActivityThread.-wrap11(Unknown Source:0)
W/System.err: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1620)
W/System.err: at android.os.Handler.dispatchMessage(Handler.java:105)
W/System.err: at android.os.Looper.loop(Looper.java:176)
W/System.err: at android.app.ActivityThread.main(ActivityThread.java:6701)
W/System.err: at java.lang.reflect.Method.invoke(Native Method)
W/System.err: at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:249)
W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:783)
(3)API-28(Android9.0)上该类已经不存在了
在AS中搜索该类,以及在系统源码中按照之前的路径,都无法再找到该类。

Android蓝牙读取短信调研的更多相关文章
- Android自动读取短信验证码
Android自动读取短信验证码 extends:http://www.cnblogs.com/jiayaguang/p/4366384.html,http://blog.csdn.net/yung ...
- Android中读取短信信息
Android中读取的短信文件有 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 /** * 所有的短信 */ public static final Strin ...
- android自动获取短信验证码
前言:android应用的自动化测试必然会涉及到注册登录功能,而许多的注册登录或修改密码功能常常需要输入短信验证码,因此有必要能够自动获得下发的短信验证码.主要就是实时获取短信信息.android上获 ...
- android自动填写短信验证码
广播类 package com.examp.azuoyoutong.listner; import java.util.regex.Matcher;import java.util.regex.Pat ...
- android 监听短信数据库,制作短信控制工具,控制别人的手机!!(一)
序言:本程序示例本着简洁易懂的目的,只做了简单的功能实现,需要用户启动应用,收到短信才有效果.作者将会在后面的(二)篇中加入服务后台运行.自动启动功能,实现一个真正的短信控制工具.本文的目的很简单,让 ...
- Android开发遇到短信备份失败
今天做了一个有关ContentProvider的短信备份的小案例,遇到短信备份失败,费了一番周折后终于找到了问题所在 该案例是将短信写到一个xml文件然后保存在手机存储中实现短信的备份功能,关键实现代 ...
- Android通讯:短信
Android通讯之短信功能实现: 使用android.telephony.SmsManager对象,可以发送短信和彩信.// 构造回调函数,短信发送结束后,会发出对应的Intent请求Intent ...
- Android 趣味应用—— 短信编辑器
修改短信数据库,从而生成任意手机号发送的短信. AndroidManifest.xml <?xml version="1.0" encoding="utf-8&qu ...
- android之发送短信程序
首先改写activity_main.xml文件 代码如下: <LinearLayout xmlns:android="http://schemas.android.com/apk/re ...
随机推荐
- Taro 3 正式版发布:开放式跨端跨框架解决方案
作者:凹凸曼 - yuche 从 Taro 第一个版本发布到现在,Taro 已经接受了来自于开源社区两年多的考验.今天我们很高兴地在党的生日发布 Taro 3(Taro Next)正式版,希望 Tar ...
- SpringBoot开发案例之异常处理并邮件通知
前言 在项目开发中,对于异常处理我们通常有多种处理方式,比如:控制层手动捕获异常,拦截器统一处理异常.今天跟大家分享一种注解的方式,统一拦截异常并处理. 异常处理 在spring 3.2中,新增了@R ...
- 十位大牛做出的web前端开发规范总结
Web前端作为开发团队中不可或缺的一部分,需要按照相关规定进行合理编写(一部分不良习惯可能给自己和他人造成不必要的麻烦).不同公司不同团队具有不同的规范和文档.下面是根据不同企业和团队的要求进行全面详 ...
- CI CD概念
CI:持续集成 Continuous Integration CD:持续发布 Continuous Delivery (完)
- Tomcat启动流程简析
Tomcat是一款我们平时开发过程中最常用到的Servlet容器.本系列博客会记录Tomcat的整体架构.主要组件.IO线程模型.请求在Tomcat内部的流转过程以及一些Tomcat调优的相关知识. ...
- 基于.NetCore3.1系列 —— 认证授权方案之授权揭秘 (下篇)
一.前言 回顾:基于.NetCore3.1系列 -- 认证授权方案之授权揭秘 (上篇) 在上一篇中,主要讲解了授权在配置方面的源码,从添加授权配置开始,我们引入了需要的授权配置选项,而不同的授权要求构 ...
- php批量 下载图片
<?php set_time_limit(0); $file = fopen("index.csv",'r');$temp = [];$i=0;$firstsku='';wh ...
- 数据可视化之PowerQuery篇(十九)PowerBI数据分析实践第三弹 | 趋势分析法
https://zhuanlan.zhihu.com/p/133484654 本文为星球嘉宾"海艳"的PowerBI数据分析工作实践系列分享之三,她深入浅出的介绍了PowerBI ...
- 计算机网络学习socket--day1
socket编程 socket可以看成是用户进程与内核网络协议栈的编程接口 socket不仅可以用于本机的进程间通信,还可以用于网络上不同主机的进程间通信 socket全双工通信 在异构系统间进行通信 ...
- linux $* 和$@例子
参见ibm网站示例: https://www.ibm.com/developerworks/cn/linux/l-bash-parameters.html 示例: [ian@pinguino ~]$ ...