本文部分内容摘自: http://www.pclviewer.com/android/
用以下代码中的接口实现控制蓝牙的开、关及详细信息

unit Androidapi.JNI.BluetoothAdapter;

// (c) RedTitan Technology
// 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://files.cnblogs.com/nywh2008/bluetooth.rar

delphi xe5 android 控制蓝牙的更多相关文章

  1. xe5 android 控制蓝牙[转]

    用以下代码中的接口实现控制蓝牙的开.关及详细信息 unit Androidapi.JNI.BluetoothAdapter; // (c) RedTitan Technology 2013// JNI ...

  2. delphi xe5 android iny绿色版+最新SDK/NDK安装方法

    转自: http://bbs.2ccc.com/topic.asp?topicid=438595 首先感谢iny的绿色版,因为我的精简Win7 32位安装原版镜像4.63G过程正常,但是编译出错,后来 ...

  3. delphi xe5 android 调用照相机获取拍的照片

    本篇文章我们来看一下delphi xe5 在android程序里怎样启动照相机并获取所拍的照片,本代码取自xe自带打sample,路径为: C:\Users\Public\Documents\RAD ...

  4. Delphi XE5 Android 调用 Google ZXing

    { Google ZXing Call demo Delphi Version: Delphi XE5 Version 19.0.13476.4176 By: flcop(zylove619@hotm ...

  5. Delphi XE5 Android 运行黑屏卡死的解决方法

    1. 确保正确安装Android SDK: 开始菜单 > 所有程序 > Embarcadero RAD Studio XE5 > > Android Tools > 打开 ...

  6. delphi xe5 android 服务端和手机端的源码下载

    xe5 android的服务端和手机客户端的源代码下载地址 http://files.cnblogs.com/nywh2008/AndroidTest.rar

  7. Delphi XE5 android 蓝牙通讯传输

    不多讲,直接上代码了. 代码来自网络 http://files.cnblogs.com/nywh2008/Bluetooth_LEDs_android.rar

  8. delphi xe5 android tts(Text To Speech)

    TTS是Text To Speech的缩写,即“从文本到语音”,是人机对话的一部分,让机器能够说话. 以下代码实现xe5 开发的文本转语音的方法 和访问蓝牙一样,这里用javaclass的接口实现 接 ...

  9. delphi xe5 android 关于文件大小的几个问答O(∩_∩)O~

    摘自:http://blogs.embarcadero.com/vsevolodleonov/2013/09/19/are-you-asking-about-app-size-by-delphi-fo ...

随机推荐

  1. Oracle批量加注释,并生成html

    excel连接列名生成oracle注释 notes: A2为列名,B2为注释 ="comment on column ColAgreementHeader."&A2& ...

  2. Python 基础【第八篇】变量

    1.变量定义: 给数据进行命名,数据的名字就叫做变量 2.变量格式: [变量名] = [值] 注:变量名命名需要满足下面两条准则 准则一:标示符开头不能为数字.不能包含空格.特殊字符准则二:标示符不能 ...

  3. 【转】monkeyrunner学习总结二:连接、安装、启动

    一.获取packageName与startActivity 前置条件:已成功安装配置SL4A并连接PC调试(参见:monkeyrunner学习总结一:环境搭建:http://www.amsoft.cn ...

  4. 【C语言】5-结构体

    一.什么是结构体 * 在实际应用中,我们通常需要由不同类型的数据来构成一个整体,比如学生这个整体可以由姓名.年龄.身高等数据构成,这些数据都具有不同的类型,姓名可以是字符串类型,年龄可以是整型,身高可 ...

  5. postgresql cast转换类型

    代码 CAST(aa as NUMERIC)

  6. jQuery Easy UI 使用

    一.引入必要文件 二.加载UI组件的方式 加载 UI 组件有两种方式: 1.使用 class 方式加载: 2.使用 JS 调用加载.//使用 class 加载,格式为: easyui-组件名 效果: ...

  7. sql 理解视图

    可以看作是定义在sqlserver上的虚拟的表,本身并不存储数据,仅仅存储一个select语句和涉及的表的引用 通过视图,客户端不再需要知道底层表结构和其之间的关系,视图提供了一个统一访问数据的接口 ...

  8. mysql安全

    安装MySql时,尽量选择别的端口(默认是3306),密码设复杂一点!在next的步骤中,注意不要选中"允许远程登录". Web漏洞检测及修复 http://wiki.open.q ...

  9. Java parseInt_使用此方法得到的原始数据类型的一个特定的字符串

    Java parseInt解释加方法示例     使用此方法得到的原始数据类型的一个特定的字符串. parseXxx()是一个静态方法,可以有一个参数或两个         java parseInt ...

  10. iOS RunTime的简单使用

    1.根据指定规则根据runtime进行页面选择跳转 背景:要根据后台返回的数据 进行选择要跳转到哪一个ViewController // 这个规则肯定事先跟服务端沟通好,跳转对应的界面需要对应的参数 ...