`
fanguanghui
  • 浏览: 99967 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

Android提高第十三篇之探秘蓝牙隐藏API

 
阅读更多

本文来自http://blog.csdn.net/hellogv/ ,引用必须注明出处!

上次讲解Android的蓝牙基本用法,这次讲得深入些,探讨下蓝牙方面的隐藏API。用过Android系统设置(Setting)的人都知道蓝牙搜索之后可以建立配对解除配对,但是这两项功能的函数没有在SDK中给出,那么如何去使用这两项功能呢?本文利用JAVA的反射机制去调用这两项功能对应的函数:createBond和removeBond,具体的发掘和实现步骤如下:

1.使用Git工具下载platform/packages/apps/Settings.git,在Setting源码中查找关于建立配对解除配对的API,知道这两个API的宿主(BluetoothDevice);

2.使用反射机制对BluetoothDevice枚举其所有方法和常量,看看是否存在:

结果如下:

11-29 09:19:12.012: method name(452): cancelBondProcess
11-29 09:19:12.020: method name(452): cancelPairingUserInput
11-29 09:19:12.020: method name(452): createBond
11-29 09:19:12.020: method name(452): createInsecureRfcommSocket
11-29 09:19:12.027: method name(452): createRfcommSocket
11-29 09:19:12.027: method name(452): createRfcommSocketToServiceRecord
11-29 09:19:12.027: method name(452): createScoSocket
11-29 09:19:12.027: method name(452): describeContents
11-29 09:19:12.035: method name(452): equals
11-29 09:19:12.035: method name(452): fetchUuidsWithSdp
11-29 09:19:12.035: method name(452): getAddress
11-29 09:19:12.035: method name(452): getBluetoothClass
11-29 09:19:12.043: method name(452): getBondState
11-29 09:19:12.043: method name(452): getName
11-29 09:19:12.043: method name(452): getServiceChannel
11-29 09:19:12.043: method name(452): getTrustState
11-29 09:19:12.043: method name(452): getUuids
11-29 09:19:12.043: method name(452): hashCode
11-29 09:19:12.043: method name(452): isBluetoothDock
11-29 09:19:12.043: method name(452): removeBond
11-29 09:19:12.043: method name(452): setPairingConfirmation
11-29 09:19:12.043: method name(452): setPasskey
11-29 09:19:12.043: method name(452): setPin
11-29 09:19:12.043: method name(452): setTrust
11-29 09:19:12.043: method name(452): toString
11-29 09:19:12.043: method name(452): writeToParcel
11-29 09:19:12.043: method name(452): convertPinToBytes
11-29 09:19:12.043: method name(452): getClass
11-29 09:19:12.043: method name(452): notify
11-29 09:19:12.043: method name(452): notifyAll
11-29 09:19:12.043: method name(452): wait
11-29 09:19:12.051: method name(452): wait
11-29 09:19:12.051: method name(452): wait

3.如果枚举发现API存在(SDK却隐藏),则自己实现调用方法:

PS:SDK之所以不给出隐藏的API肯定有其原因,也许是出于安全性或者是后续版本兼容性的考虑,因此不能保证隐藏API能在所有Android平台上很好地运行。。。

本文程序运行效果如下:

main.xml源码如下:

工具类ClsUtils.java源码如下:

主程序testReflect.java的源码如下:

分享到:
评论

相关推荐

    Android提高之探秘蓝牙隐藏API

    本文主要聚焦于Android蓝牙功能中的隐藏API,探讨如何通过Java的反射机制来调用并实现蓝牙设备的配对和解配对。 首先,我们要明白,Android SDK提供的BluetoothAdapter类中,并没有直接提供创建配对(createBond)...

    Android提高之蓝牙隐藏API探秘

    在Android应用开发中,蓝牙...总之,Android的蓝牙隐藏API为开发者提供了更底层的控制,使得在特定场景下能够实现更复杂的蓝牙功能。然而,这也伴随着潜在的风险和不稳定性,因此在实际开发中应权衡利弊,谨慎使用。

    Android应用于探秘蓝牙隐藏API

    Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是为移动终端打造的真正开放和完整的移动...

    模拟技术中的Android应用于探秘蓝牙隐藏API

    Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的...

    delphi中apihook探秘提高篇.txt

    三、Delphi中APIHook的具体应用 在Delphi中,APIHook技术可以应用于多个场景,如: - **日志记录**:在关键API调用前后插入日志记录,有助于调试和性能分析。 - **功能增强**:通过Hook特定API,可以在不修改源...

    Android提高之TelephonyManager功能探秘

    前面文章介绍了如何使用JAVA的反射机制来调用蓝牙的隐藏API,本文继续来练习JAVA的反射机制,探秘TelephonyManager在Framework里包含却在SDK隐藏的几项功能。 先来看一下本文程序运行的效果图,如下所示: 本文程序...

    基于Android平台的短信发送器实现探秘(全文).docx

    基于Android平台的短信发送器实现探秘(全文).docx

    第3课 攀登宝塔(《信息学探秘:提高篇》)-2019-06-16.pdf

    在标题《第3课 攀登宝塔(《信息学探秘:提高篇》)-2019-06-16.pdf》中,我们可以提取到几个重要的知识点。首先,“攀登宝塔”这一标题就透露了这节课将要解决的问题是关于动态规划的,这是一个算法思想,通常用于...

    深度探秘:Android Studio 本地化部署 Deepseek 全攻略.zip

    本篇《深度探秘:Android Studio 本地化部署 Deepseek 全攻略》将为Android开发者提供一套全面的本地化部署指南,涵盖从环境搭建到问题排查再到高级优化的全过程。通过本篇攻略的学习,开发者可以有效提升本地化部署...

    探秘腾讯Android手机游戏平台之不安装游戏APK直接启动法

    "探秘腾讯Android手机游戏平台之不安装游戏APK直接启动法"这个主题,揭示了腾讯如何在不需用户下载并安装完整游戏APK的情况下,实现游戏的快速启动和运行。这一技术在提高用户便利性、节省存储空间以及降低游戏分发...

    NTFS文件系统扇区存储探秘_扫描完整版

    第6章至第17章是“探秘篇”,使用工具程序对NTFS文件系统的扇区存储规律进行了探索。  《NTFS文件系统扇区存储探秘》附送的光盘里收录了书中使用的全部工具程序,读者可以使用这些工具程序对硬盘扇区数据进行各种...

    Web API 深度探秘:解锁 DOM 操作的无限可能.docx

    Web API 深度探秘:解锁 DOM 操作的无限可能.docx

    hook_api_delphi_DELPHIHOOK_hook_

    当我们谈论"hook_api_delphi_DELPHIHOOK_hook_"时,我们实际上是在讨论如何在Delphi程序中实现API钩子(API Hook)。API钩子是一种技术,允许开发者截取或拦截系统调用,以便在调用目标函数之前或之后执行自定义代码...

    Android16技

    **探秘蓝牙隐藏API** - **概述**:这部分内容揭秘了一些未公开的蓝牙API,可用于实现更为复杂的蓝牙功能。 - **API介绍**:详细介绍了这些隐藏API的功能和使用方法。 - **注意事项**:强调了使用隐藏API的风险和...

    C++11/14高级编程 Boost程序库探秘 中文版 第三版 高清完整

    《C++11/14高级编程 Boost程序库探秘 中文版 第三版》是罗剑锋先生的力作,由清华大学出版社出版。这本书详细介绍了C++11和C++14标准的新特性和Boost程序库的深度应用,旨在帮助广大的C++程序员和爱好者提升技能,更...

    体验引擎 游戏设计全景探秘

     从表面上看,《体验引擎:游戏设计全景探秘》的重点在于游戏的设计、规划、平衡性、界面、营销等要素。然而实际上,《体验引擎:游戏设计全景探秘》的核心是游戏体验。如何通过游戏设计来创造丰富多彩的游戏体验,...

Global site tag (gtag.js) - Google Analytics