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

unit Androidapi.JNI.BluetoothAdapter;// (c) RedTitan Technology 2013// JNI BLUETOOTH import demo// Note - REQUIRES - PROJECT OPTIONS - USES PERMISSIONS - BLUETOOTHinterfaceuses  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 enabledfunction checkBluetooth:string;// List bonded devicesfunction getBonded:TStringList;implementationuses  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

更多相关文章

  1. android
  2. Android(安卓)Interface Definition Language(AIDL)
  3. Android(安卓)近百个项目的源代码,覆盖Android开发的每个领域
  4. android tab上显示数字
  5. 打电话
  6. Android安装卸载程序具体操作方法解析
  7. Android代码混淆打包
  8. android: 大量开源项目源代码分享
  9. 史上最全!最经典!最无私的Android资料(书籍+代码)分享-不要积分

随机推荐

  1. 我的android笔记
  2. Android Bug 汇总
  3. Bad CPU type in executable
  4. Android碎碎念 -- 数据存储
  5. 配置android的开发环境
  6. Android(安卓)NDK C++中的多线程
  7. Android中ActionBar居中
  8. Android 之主题
  9. Android WebView的使用方法总结
  10. Android――Dialog