宋者为王资料

本文主要介绍宋者为王资料 方法和在新技术下所面对的“挑战”,方便大家深入理解宋者为王资料 过程。本文也将分享宋者为王资料 所遇到的问题和应对策略,怎么解决怎么做的问题。
通过深入本文可以理解代码原理,进行代码文档的下载,也可以查看相应 Demo 部署效果。

最近碰到一个“直接通过蓝牙来获取连接手机的短信信息”的需求,网上这方面的资料非常少,所以目前困难重重。这里记录了一些调研结果,如果有大佬看到这篇文章,希望能指导一二。

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

1、无法得到BluetoothMasClient类

     在文章https://blog.csdn.net/u012439416/article/details/54349812(蓝牙map协议源码解析)这篇文章中有提到通过MAP方式来实现蓝牙读取短信,具体的实现方式为:

 1  //注册广播  2  IntentFilter filter = new IntentFilter();    3  filter.addAction("android.bluetooth.device.action.SDP_RECORD");  4  registerReceiver(mReceiver, filter);  5  //监听广播  6  private final BroadcastReceiver mReceivers = new BroadcastReceiver() {  7      @Override  8      public void onReceive(Context context, Intent intent) {  9          String action = intent.getAction(); 10         if (action.equals(BluetoothDevice.ACTION_SDP_RECORD)) { 11             BluetoothDevice dev = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); 12             ParcelUuid uuid = intent.getParcelableExtra(BluetoothDevice.EXTRA_UUID); 13             if (uuid.equals(BluetoothUuid.MAS)) { 14                 SdpMasRecord masrec = 15                         intent.getParcelableExtra(BluetoothDevice.EXTRA_SDP_RECORD); 16                  BluetoothMasClient mapclient = new BluetoothMasClient(mDevice, masrec, 17                         mMapHandler); 18             } 19         } 20     } 21 };

    这里面有些类和属性,在API-27及以上已经被加了@hide标签,当然这一点供应商提供的提供可以解决。在调试过程中,上述广播也能监听到。但第16行的红色字体部分有个比较关键的类BluetoothMasClient,获取短信信息的方法都需要通过该类实例来完成,在API-27(Android8.1)及以上系统都无法获取到。

(1)API-27上无法直接引用BluetoothMasClient类

          在系统源码frameworksoptbluetoothsrcandroidbluetoothclientmap下可以找到该类,引用路径为”android.bluetooth.client.map.BluetoothMasClient”,使用时发现无法引用这个类。

宋者为王

 

在源码中可以找到

            宋者为王

在使用时无法调用

(2)在API-27(Android8.1)无法通过反射获取到BluetoothMasClient类

        通过反射的方式,也无法获取到该类。测试代码:

 1 public void getBluetoothMasClient() {  2     Log.d(TAG, "testGetHide");  3     try {  4         Class<?> c = Class.forName("android.bluetooth.client.map.BluetoothMasClient");  5         Log.d(TAG, "name=" + c.getName());  6     } catch (ClassNotFoundException e) {  7         Log.d(TAG, "e=" + e.getMessage());  8         e.printStackTrace();  9     } 10 }

运行结果:

 1  W/System.err: java.lang.ClassNotFoundException: android.bluetooth.client.map.BluetoothMasClient  2  W/System.err:     at java.lang.Class.classForName(Native Method)  3  W/System.err:     at java.lang.Class.forName(Class.java:453)  4  W/System.err:     at java.lang.Class.forName(Class.java:378)  5  W/System.err:     at com.example.demo.sms.BTActivity.testGetHide(BTActivity.java:489)  6  W/System.err:     at com.example.demo.sms.BTActivity.onCreate(BTActivity.java:73)  7  W/System.err:     at android.app.Activity.performCreate(Activity.java:7050)  8  W/System.err:     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1214)  9  W/System.err:     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2809) 10  W/System.err:     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2931) 11  W/System.err:     at android.app.ActivityThread.-wrap11(Unknown Source:0) 12  W/System.err:     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1620) 13  W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:105) 14  W/System.err:     at android.os.Looper.loop(Looper.java:176) 15  W/System.err:     at android.app.ActivityThread.main(ActivityThread.java:6701) 16  W/System.err:     at java.lang.reflect.Method.invoke(Native Method) 17  W/System.err:     at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:249) 18  W/System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:783)

(3)API-28(Android9.0)上该类已经不存在了

      在AS中搜索该类,以及在系统源码中按照之前的路径,都无法再找到该类。

      宋者为王

宋者为王

 

宋者为王资料部分资料来自网络,侵权毕设源码联系删除

区块链毕设网(www.qklbishe.com)全网最靠谱的原创区块链毕设代做网站
部分资料来自网络,侵权联系删除!
资源收费仅为搬运整理打赏费用,用户自愿支付 !
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台 » 宋者为王资料

提供最优质的资源集合

立即查看 了解详情