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系统用,查了好多资料,发现网上很少有有用的.自己实践后分享如下. 第一步:手机与电脑配对: 该步骤比较简单,网 ... 
随机推荐
- Web服务器使用基于纯文本表单的身份验证——.net(未完待续)
			asp.net 表单验证方式 Asp.net的身份验证有有三种,分别是"Windows | Forms| Passport",其中又以Forms验证用的最多,也最灵活. 根据实际需 ... 
- 大数据-04-Hbase入门
			本文主要来自于 http://dblab.xmu.edu.cn/blog/install-hbase/ 谢谢原作者 本指南介绍了HBase,并详细指引读者安装HBase. 前面第二章学习指南已经指导大 ... 
- hadoop day 1
			hadoop是什么? 解决的问题: 海量数据的存储(HDFS):供hbase,mapreduce进行处理 海量数据的分析(MapReduce) 资源管理调度(YARN) 搜索引擎: 爬虫系统+站内搜索 ... 
- 原生WebGL绘制3个点
			<html> <body> <canvas width = "300" height = "300" id = "my_ ... 
- 创建文件夹c++
			linux #include <sys/types.h> #include <sys/stat.h> string filepath; mkdir(filepath.c_str ... 
- WEBBASE篇: 第一篇, HTML知识1
			HTML知识1 1,web概述 WEB就是互联网上的一种应用程序 - 网页程序: 程序结构: (1)C / S: C:Client 客户端:S:Server 服务器: (2)B / S: B:Brow ... 
- Write operations are not allowed in read-only mode (FlushMode.MANUAL): Turn your Session into FlushMode.COMMIT/AUTO or remove 'readOnly' marker from transaction definition.
			Struts Problem Report Struts has detected an unhandled exception: Messages: Write operations are not ... 
- 陕西师范第七届K题----动态规划
			ps: 自己的方法绝对是弱爆了 肯定存在更优的方法 O(n^3)复杂度 暴力求解的.. 链接:https://www.nowcoder.com/acm/contest/121/K来源:牛客网 柯怡最近 ... 
- hdu6440  Dream(费马小定理)
			保证 当 n^p=n(mod p) 是成立 只要保证n*m=n*m(mod p); #include<bits/stdc++.h> using namespace std; int ma ... 
- eclipse svn不能忽略文件及文件夹,ignore设置无效 ?
			https://blog.csdn.net/zengmingen/article/details/79025445 https://blog.csdn.net/zengmingen/article/d ... 
