xe5 android 控制蓝牙[转]
用以下代码中的接口实现控制蓝牙的开、关及详细信息
unit Androidapi.JNI.BluetoothAdapter;
// (c) RedTitan Technology 2013
// JNI BLUETOOTH import demo
// Note - REQUIRES - PROJECT OPTIONS - USES PERMISSIONS - BLUETOOTH
interface
uses
Androidapi.JNIBridge,
Androidapi.JNI.JavaTypes, Classes;
type
/////////////////////////// BluetoothDevice //////////////////////////////////
JBluetoothDevice = interface;
JBluetoothDeviceClass = interface(JObjectClass)
['{FB8F9E83-CF98-4737-B7B0-64EFB07EBE2A}']
end;
[JavaSignature('android/bluetooth/BluetoothDevice')]
JBluetoothDevice = interface(JObject)
['{F2560E3D-D26E-4DD8-B384-43070B02FF04}']
function getName:JString; cdecl;
function getAddress:JString; cdecl;
end;
TJBluetoothDevice = class(TJavaGenericImport<JBluetoothDeviceClass, JBluetoothDevice>) end;
/////////////////////////// BluetoothAdapter /////////////////////////////////
JBluetoothAdapter = interface;
JBluetoothAdapterClass = interface(JObjectClass)
['{05CE5465-2953-4CC3-9D9B-01D71E90F412}']
function getDefaultAdapter: JBluetoothAdapter; cdecl;
end;
[JavaSignature('android/bluetooth/BluetoothAdapter')]
JBluetoothAdapter = interface(JObject)
['{D5C8CAD6-E717-4B95-89F1-A6FD0861B7DB}']
function isEnabled:Boolean; cdecl;
function getName:JString; cdecl;
function cancelDiscovery:Boolean;
function checkBluetoothAddress(Address:JString):Boolean; cdecl;
function disable:Boolean; cdecl;
function enable:Boolean; cdecl;
function getAddress:JString; cdecl;
procedure closeProfileProxy(profile:Integer;BluetoothProfile:Jobject); cdecl;
function getBondedDevices:JSet; cdecl;
end;
TJBluetoothAdapter = class(TJavaGenericImport<JBluetoothAdapterClass, JBluetoothAdapter>) end;
// get local Bluetooth device name and check if it is enabled
function checkBluetooth:string;
// List bonded devices
function getBonded:TStringList;
implementation
uses
FMX.Helpers.Android;
function checkBluetooth:string;
var
x:JBluetoothAdapter;
s:String;
addr:string;
begin
x:=TJBluetoothAdapter.JavaClass.getDefaultAdapter;
s:=jstringtostring(x.getName);
if x.isEnabled then result:=s+'(enabled) '+jstringtostring(x.getAddress)
else result:=s+'(disabled)';
end;
function getBonded:TStringList;
var
x:JBluetoothAdapter;
externalDevices:JSet;
bonded:Tjavaobjectarray<Jobject>;
it:Jiterator;
o:JBluetoothDevice;
begin
result:=TStringlist.Create;
x:=TJBluetoothAdapter.JavaClass.getDefaultAdapter;
externalDevices:=x.getBondedDevices;
it:=externalDevices.iterator;
while it.hasNext do
begin
o:=TJBluetoothDevice.Wrap((it.next as ILocalObject).GetObjectID);
result.Add(jstringtostring(o.getName)+','+jstringtostring(o.getAddress))
end;
end;
end.
蓝牙接口单元代码
procedure TForm1.Button1Click(Sender: TObject);
var
x:JBluetoothAdapter;
s:String;
addr:string;
begin
x:=TJBluetoothAdapter.JavaClass.getDefaultAdapter;
s:=jstringtostring(x.getName);
if x.isEnabled then showmessage(s+'(enabled) '+jstringtostring(x.getAddress))
else showmessage('(disabled)');
end;
测试代码
当然你需要在project->option里给蓝牙的权限

效果图:

http://pan.baidu.com/s/1pBciU
xe5 android 控制蓝牙[转]的更多相关文章
- delphi xe5 android 控制蓝牙
本文部分内容摘自: http://www.pclviewer.com/android/用以下代码中的接口实现控制蓝牙的开.关及详细信息 unit Androidapi.JNI.BluetoothAda ...
- xe5 android tts(Text To Speech)
xe5 android tts(Text To Speech) TTS是Text To Speech的缩写,即“从文本到语音”,是人机对话的一部分,让机器能够说话. 以下代码实现xe5 开发的文本转 ...
- 【转】Android bluetooth介绍(二): android blueZ蓝牙代码架构及其uart 到rfcomm流程
原文网址:http://blog.sina.com.cn/s/blog_602c72c50102uzoj.html 关键词:蓝牙blueZ UART HCI_UART H4 HCI L2CAP ...
- 【源代码】基于Android和蓝牙的单片机温度採集系统
如需转载请标明出处:http://blog.csdn.net/itas109 QQ技术交流群:129518033 STC89C52单片机通过HC-06蓝牙模块与Android手机通信实例- 基于And ...
- Android无线蓝牙总结
一.基础知识: ①蓝牙的四层协议: 蓝牙协议分为4层,即核心协议层.电缆替代协议层.电话控制协议层和采纳的其它协议层.这4种协议中最重要的是核心协议.蓝牙的核心协议包括基带.链路管理.逻辑链路控制和适 ...
- Android 串口蓝牙通信开发Java版本
Android串口BLE蓝牙通信Java版 0. 导语 Qt on Android 蓝牙通信开发 我们都知道,在物联网中,BLE蓝牙是通信设备的关键设备.在传统的物联网应用中,无线WIFI.蓝牙和Zi ...
- 使用BleLib的轻松搞定Android低功耗蓝牙Ble 4.0开发具体解释
转载请注明来源: http://blog.csdn.net/kjunchen/article/details/50909410 使用BleLib的轻松搞定Android低功耗蓝牙Ble 4.0开发具体 ...
- Android Studio 蓝牙开发实例——基于Android 6.0
因项目需要做一个Android 的蓝牙app来通过手机蓝牙传输数据以及控制飞行器,在此,我对这段时间里写的蓝牙app的代码进行知识梳理和出现错误的总结. 该应用的Compile Sdk Version ...
- ubuntu16.04连接android手机蓝牙共享网络热点
最近的想要用android手机蓝牙共享wifi网络给ubuntu16.04系统用,查了好多资料,发现网上很少有有用的.自己实践后分享如下. 第一步:手机与电脑配对: 该步骤比较简单,网 ...
随机推荐
- 网络协议理论,http协议,数据结构,常用返回码
一.网络协议理论 先是DNS协议 将域名转化成IP地址 这个你要知道 域名只是人记着方便 计算机记的是IP 然后是TCPIP协议 数据在传输过程中可能要经过陆游器 涉及到的是ARP协议 将IP地址转换 ...
- Spring Boot 揭秘与实战(六) 消息队列篇 - RabbitMQ
文章目录 1. 什么是 RabitMQ 2. Spring Boot 整合 RabbitMQ 3. 实战演练4. 源代码 3.1. 一个简单的实战开始 3.1.1. Configuration 3.1 ...
- ubuntu discuz 该函数需要 PHP 支持 XML。请联系空间商,确定开启了此项功能
apt-get install php-xml apt-get install php-xml-parser
- JavaBasic_08
类的定义 [修饰符] calss 类名 [extends 父类名] [implements 接口名] { [成员变量声明;] [成员方法声明;] } 注:[]里面的东西不是必须的. 同一个java文件 ...
- Linux 服务器配置、运行、不用敲命令(新手必备!) - 宝塔全攻略建站一条龙
Linux 服务器配置.运行.不用敲命令 WordPress 建站攻略 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整 ...
- nginx安装,配置,并可以放静态文件教程
简单介绍一下:nginx是一个高性能的HTTP和反向代理的服务器.能有处理最高5,0000的并发量,是新兴的一个代理服务器.中国大陆使用nginx网站用户有:百度.京东.新浪.网易.腾讯.淘宝等. 安 ...
- 51Nod 1070:Bash游戏 V4(斐波那契博弈)
1070 Bash游戏 V4 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 收藏 关注 有一堆石子共有N个.A B两个人轮流拿,A先拿.每次拿的数量最少1个 ...
- 云计算SPI(SaaS、PaaS、IaaS)
云计算SPI(SaaS.PaaS.IaaS) The other day, I arrived at the SAP LABS CHINA for interview with my pleasure ...
- MySQL数据库的学习
------------------------------------- 管理数据库PS: Mysql的管理 主要是包括 用户的管理. show........各种的信息 SHOW COLUMN ...
- 10 Rules of Highly Successful Project Management
I commited the information below to report PDU of PMI. ^_^. In this paper, the author introduces his ...