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系统用,查了好多资料,发现网上很少有有用的.自己实践后分享如下. 第一步:手机与电脑配对: 该步骤比较简单,网 ...
随机推荐
- Java技术体系
Shell 解释型编程语言(脚本语言都是解释型语言) Shell通过解释器/bin/bash 解释,运行在进程中 Java 编译型解释型语言(先编译再解释) Java通过编译器转换成字节码语言,再用过 ...
- 数据文件resize扩容
表空间不足 Alert日志报错 Mon Dec :: GMT+: Incremental checkpoint up to RBA[ox1af2d.3ddll.], current log tail ...
- 使用Git去管理修改
Git跟踪的是修改而不是文件本身. 看下面一个例子 首先我们修改我们Git管理的git.txt文件 如下: 然后添加: 然后我们再去修改git.txt这个文件 然后直接提交到分支里如图: 也就是说我们 ...
- 动态规划-----hdu 1024 (区间连续和)
给定一个长度为n的区间:求m段连续子区间的和 最大值(其中m段子区间互不相交) 思路: dp[i][j]: 前j个元素i个连续区间最大值 (重要 a[j]必须在最后一个区间内) 转移方程:dp[i][ ...
- 并发编程-TPL
并发编程-TPL 本节导航 基本概念 并发编程 TPL 线程基础 windows为什么要支持线程 线程开销 CPU的发展 使用线程的理由 如何写一个简单Parallel.For循环 数据并行 Para ...
- 经过强制类型转换以后,变量a, b的值分别为( )short a = 128; byte b = (byte) a;
1.Java中用补码形式表示 2.第一位正负位,1表示负,0表示正. 3.原码:一个数的二进制表示. 3的原码00000011 -3的 原码 10000011 4 ...
- CH3B04 Xiao 9*大战朱最学
题意 3B04 Xiao 9*大战朱最学 0x3B「数学知识」练习 背景 Xiao 9*.朱最学.小全同属LOI,朱某某同学由于学习认真得到了小全的仰慕~~送其外号---朱最学.最学想:神牛我当不成难 ...
- UVA11077 Find the Permutations
题意 PDF 给出1~n的一个排列,可以通过一系列的交换变成{1,2,-,n}.比如{2,1,4,3}需要两次交换.给定n和k,统计有多少个排列至少需要k次交换才能变成{1,2,-,n}. 分析 将给 ...
- Django之JsonResponse
JsonResponse 对象: class JsonResponse(data, encoder=DjangoJSONEncoder, safe=True, json_dumps_params=No ...
- Mybatis二(高级部分)
1.输入映射和输出映射 a) 输入参数映射 b) 返回值映射 2.动态sql a) If标签 b) Where标签 c) Sql片 ...