对“直接通过蓝牙来获取连接手机的短信信息”这个需求做了一些技术调研,如下是调研过程中的一些记录。

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蓝牙读取短信调研的更多相关文章

  1. Android自动读取短信验证码

    Android自动读取短信验证码  extends:http://www.cnblogs.com/jiayaguang/p/4366384.html,http://blog.csdn.net/yung ...

  2. Android中读取短信信息

    Android中读取的短信文件有 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 /**  * 所有的短信  */ public static final Strin ...

  3. android自动获取短信验证码

    前言:android应用的自动化测试必然会涉及到注册登录功能,而许多的注册登录或修改密码功能常常需要输入短信验证码,因此有必要能够自动获得下发的短信验证码.主要就是实时获取短信信息.android上获 ...

  4. android自动填写短信验证码

    广播类 package com.examp.azuoyoutong.listner; import java.util.regex.Matcher;import java.util.regex.Pat ...

  5. android 监听短信数据库,制作短信控制工具,控制别人的手机!!(一)

    序言:本程序示例本着简洁易懂的目的,只做了简单的功能实现,需要用户启动应用,收到短信才有效果.作者将会在后面的(二)篇中加入服务后台运行.自动启动功能,实现一个真正的短信控制工具.本文的目的很简单,让 ...

  6. Android开发遇到短信备份失败

    今天做了一个有关ContentProvider的短信备份的小案例,遇到短信备份失败,费了一番周折后终于找到了问题所在 该案例是将短信写到一个xml文件然后保存在手机存储中实现短信的备份功能,关键实现代 ...

  7. Android通讯:短信

    Android通讯之短信功能实现: 使用android.telephony.SmsManager对象,可以发送短信和彩信.// 构造回调函数,短信发送结束后,会发出对应的Intent请求Intent ...

  8. Android 趣味应用—— 短信编辑器

    修改短信数据库,从而生成任意手机号发送的短信. AndroidManifest.xml <?xml version="1.0" encoding="utf-8&qu ...

  9. android之发送短信程序

    首先改写activity_main.xml文件 代码如下: <LinearLayout xmlns:android="http://schemas.android.com/apk/re ...

随机推荐

  1. pycharm中导入包失败的解决办法

    将鼠标移动到requests处,出现如下提示 按住alt+enter键,点击install package requests即可安装requests包 安装成功后

  2. Centos7解压Zip文件

    一.安装支持ZIP的工具 yum install -y unzip zip 二.解压zip文件 unzip 文件名.zip 三.压缩一个zip文件 zip 文件名.zip 文件夹名称或文件名称

  3. H5调用手机的相机/摄像/录音等功能 _input:file的capture属性说明

    H5使用input标签调用系统默许相机,摄像,录音功能.使用input:file标签, 去调用系统默认相机,摄像,录音功能,其实是有个capture属性,直接说明需要调用什么功能: <input ...

  4. RESTful API 规范(一)

    一,简介 DRF 即Django rest framework 二,rest 规范 1 协议 API 与用户通信,总是使用https协议 2 域名 1) 应尽量将API 部署在域名下(这种情况会存在跨 ...

  5. BZOJ 1131 [POI2008] STA-Station 题解

    题目 The first stage of train system reform (that has been described in the problem Railways of the th ...

  6. Linux下对拍(A+B问题)

    对拍代码 #include<bits/stdc++.h> using namespace std; int main(){ for(int i=1;;i++){ system(" ...

  7. python三器一闭

    前言:python三器一闭i 包含 迭代器.生成器.装饰器,闭包 迭代器 概念:迭代器是一种可以记录可迭代对象遍历的位置,迭代器从第一个元素开始访问,直到访问所有元素访问结束,迭代器只会往前,不会后退 ...

  8. day52作业

    做一个小米商城首页的头部 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q ...

  9. ::before 和 :after 中双冒号和单冒号有什么区别?

    在 CSS 中伪类一直用 : 表示,如 :hover, :active 等 伪元素在CSS1中已存在,当时语法是用 : 表示,如 :before 和 :after 后来在CSS3中修订,伪元素用 :: ...

  10. MCU 51-2 LED and Digital tube Test

    点亮LED实验: #include <reg52.h> sbit LED1 = P1^; sbit LED2 = P1^; sbit LED8 = P1^; void main() { L ...