‘壹’ android中如何实现蓝牙的配对与连接
蓝牙功能可以参考下面的操作打开使用:
1.打开其他设备的蓝牙,并使其对其他设备可见。
2.打开下拉顶帘,点击蓝牙图标使其变为绿色,跳出提示框,勾选对其他设备可见。
3.点击扫描,搜索到其他设备后,点击该设备名称,双方点确定后配对成功。
4.选择要传输的文件,共享通过蓝牙即可传输文件。
‘贰’ Android APK 如何通过代码清除蓝牙已配对设备列表
貌似Android没有公开清除蓝牙配对的方法,一般提到的方法是使用反射来调用BluetoothDevice.removeBond,比如下面的例子:
private void unpairDevice(BluetoothDevice device) {
try {
Method m = device.getClass()
.getMethod("removeBond", (Class[]) null);
m.invoke(device, (Object[]) null);
} catch (Exception e) {
Log.e(TAG, e.getMessage());
}
}
‘叁’ android蓝牙配对 如何自动配对设置PIN码
Android对于音频设备是自动输入0000的pin码的,参照$frameworks/base/core/java/android/server/BluetoothEventLoop.java 的onRequestPinCode()你若是在app里编写代码,可以在收到ACTION_PAIRING_REQUEST的时候,直接调用BluetoothDevice.setpin()reference $package/apps/Settings/src/android/settings/bluetooth/BluetoothPairingDialog.java 的onPair();
‘肆’ android如何实现一台手机通过蓝牙连另一台
手机之间通过蓝牙连接传送文件,请参考以下步骤:
1、双方手机开启蓝牙开关,路径:设置--常规--蓝牙--开启开关;
2、开启开放检测开关,开启后才可以被附近所有蓝牙设备检测到;
3、扫描到需连接的蓝牙设备,点击连接;
4、双方手机提示蓝牙配对请求和配对型号,双方手机点击配对;
5、配对成功,已配对的设备里面会显示连接成功的蓝牙设备;
6、打开文件,选择蓝牙发送和需发送到的蓝牙设备,接收文件即可。
‘伍’ android 怎么判断蓝牙配对成功
可以通过mDevice.getBondState()进行判断是否需要配对;
如下代码中: (mBluetoothDevice.getBondState()==BluetoothDevice.BOND_NONE表示未配对。可以在调用配对方法之后读取一下这个状态来判断是否已配对成功。)
protectedvoidconnectDevice(){
try{
//连接建立之前的先配对
if(mBluetoothDevice.getBondState()==BluetoothDevice.BOND_NONE){
MethodcreMethod=BluetoothDevice.class
.getMethod("createBond");
Log.e("TAG","开始配对");
creMethod.invoke(mBluetoothDevice);
}else{
}
}catch(Exceptione){
//TODO:handleexception
//DisplayMessage("无法配对!");
e.printStackTrace();
}
mBluetoothAdapter.cancelDiscovery();
try{
socket.connect();
//DisplayMessage("连接成功!");
//connetTime++;
connected=true;
}catch(IOExceptione){
//TODO:handleexception
//DisplayMessage("连接失败!");
connetTime++;
connected=false;
try{
socket.close();
socket=null;
}catch(IOExceptione2){
//TODO:handleexception
Log.e(TAG,"");
}
}finally{
connecting=false;
}
}
‘陆’ syu android蓝牙连接方法
syu android蓝牙连接方法:打开其他设备的蓝牙,并使其对其他设备可见。打开下拉顶帘,点击蓝牙图标使其变为绿色,跳出提示框,勾选对其他设备可见。
syu android判断蓝牙模块是否开启,blueadapter.isEnabled() true表示已经开启,false表示蓝牙并没启用。
syu android启动配置蓝牙可见模式,即进入可配对模式Intent in=newIntent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE)。
蓝牙连接技术优势:
支持语音和数据传输;采用无线电技术,传输范围大,可穿透不同物质以及在物质间扩散;采用跳频展频技术,抗干扰性强,不易窃听;使用在各国都不受限制的频谱,理论上说,不存在干扰问题;功耗低;成本低。蓝牙的劣势:传输速度慢。
蓝牙的技术性能参数:有效传输距离为10cm~10m,增加发射功率可达到100米,甚至更远。收发器工作频率为2.45GHz ,覆盖范围是相隔1MHz的79个通道(从2.402GHz到2.480GHz )。
‘柒’ 如何实现android蓝牙自动配对连接
android蓝牙自动配对连接的具体代码如下:
1. 获取蓝牙适配器BluetoothAdapter blueadapter=BluetoothAdapter.getDefaultAdapter();
如果BluetoothAdapter 为null,说明android手机没有蓝牙模块。
2. 判断蓝牙模块是否开启,blueadapter.isEnabled() true表示已经开启,false表示蓝牙并没启用。
3. 启动配置蓝牙可见模式,即进入可配对模式Intent in=new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
in.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 200);
startActivity(in); ,200就表示200秒。
4. 获取蓝牙适配器中已经配对的设备Set<BluetoothDevice> device=blueadapter.getBondedDevices();
当然,还需要在androidManifest.xml中声明蓝牙的权限
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
5.自动配对设置Pin值
static public boolean autoBond(Class btClass, BluetoothDevice device, String strPin)
throws Exception {
Method autoBondMethod = btClass.getMethod("setPin", new Class[] { byte[].class });
Boolean result = (Boolean) autoBondMethod
.invoke(device, new Object[] { strPin.getBytes() });
return result;
}
6.开始配对请求
static public boolean createBond(Class btClass, BluetoothDevice device) throws Exception {
Method createBondMethod = btClass.getMethod("createBond");
Boolean returnValue = (Boolean) createBondMethod.invoke(device);
return returnValue.booleanValue();
}
‘捌’ 安卓手机系统怎么蓝牙配对
设置--无线和网络--蓝牙
选中那个框就可以了
‘玖’ 如何实现android蓝牙开发 自动配对连接,并不弹出提示框
我就开始查找怎么关闭这个蓝牙配对提示框,后面还是伟大的android源码帮助了我。
在源码 BluetoothDevice 类中还有两个隐藏方法
cancelBondProcess()和cancelPairingUserInput()
这两个方法一个是取消配对进程一个是取消用户输入
下面是自动配对的代码
Mainfest,xml注册
<receiverandroid:name=".">
<intent-filter>
<actionandroid:name="android.bluetooth.device.action.PAIRING_REQUEST"/>
</intent-filter>
</receiver>
自己在收到广播时处理并将预先输入的密码设置进去
{
StringstrPsw="0";
@Override
publicvoidonReceive(Contextcontext,Intentintent)
{
//TODOAuto-generatedmethodstub
if(intent.getAction().equals(
"android.bluetooth.device.action.PAIRING_REQUEST"))
{
BluetoothDevicebtDevice=intent
.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
//byte[]pinBytes=BluetoothDevice.convertPinToBytes("1234");
//device.setPin(pinBytes);
Log.i("tag11111","ddd");
try
{
ClsUtils.setPin(btDevice.getClass(),btDevice,strPsw);//手机和蓝牙采集器配对
ClsUtils.createBond(btDevice.getClass(),btDevice);
ClsUtils.cancelPairingUserInput(btDevice.getClass(),btDevice);
}
catch(Exceptione)
{
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
}
}
<b>/************************************蓝牙配对函数***************/
importjava.lang.reflect.Field;
importjava.lang.reflect.Method;
importandroid.bluetooth.BluetoothDevice;
importandroid.util.Log;
publicclassClsUtils
{
/**
*与设备配对参考源码:platform/packages/apps/Settings.git
*/Settings/src/com/android/settings/bluetooth/CachedBluetoothDevice.java
*/
staticpublicbooleancreateBond(ClassbtClass,BluetoothDevicebtDevice)
throwsException
{
MethodcreateBondMethod=btClass.getMethod("createBond");
BooleanreturnValue=(Boolean)createBondMethod.invoke(btDevice);
returnreturnValue.booleanValue();
}
/**
*与设备解除配对参考源码:platform/packages/apps/Settings.git
*/Settings/src/com/android/settings/bluetooth/CachedBluetoothDevice.java
*/
staticpublicbooleanremoveBond(ClassbtClass,BluetoothDevicebtDevice)
throwsException
{
MethodremoveBondMethod=btClass.getMethod("removeBond");
BooleanreturnValue=(Boolean)removeBondMethod.invoke(btDevice);
returnreturnValue.booleanValue();
}
staticpublicbooleansetPin(ClassbtClass,BluetoothDevicebtDevice,
Stringstr)throwsException
{
try
{
MethodremoveBondMethod=btClass.getDeclaredMethod("setPin",
newClass[]
{byte[].class});
BooleanreturnValue=(Boolean)removeBondMethod.invoke(btDevice,
newObject[]
{str.getBytes()});
Log.e("returnValue",""+returnValue);
}
catch(SecurityExceptione)
{
//thrownewRuntimeException(e.getMessage());
e.printStackTrace();
}
catch(IllegalArgumentExceptione)
{
//thrownewRuntimeException(e.getMessage());
e.printStackTrace();
}
catch(Exceptione)
{
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
returntrue;
}
//取消用户输入
(ClassbtClass,
BluetoothDevicedevice)
throwsException
{
MethodcreateBondMethod=btClass.getMethod("cancelPairingUserInput");
//cancelBondProcess()
BooleanreturnValue=(Boolean)createBondMethod.invoke(device);
returnreturnValue.booleanValue();
}
//取消配对
(ClassbtClass,
BluetoothDevicedevice)
throwsException
{
MethodcreateBondMethod=btClass.getMethod("cancelBondProcess");
BooleanreturnValue=(Boolean)createBondMethod.invoke(device);
returnreturnValue.booleanValue();
}
/**
*
*@paramclsShow
*/
(ClassclsShow)
{
try
{
//取得所有方法
Method[]hideMethod=clsShow.getMethods();
inti=0;
for(;i<hideMethod.length;i++)
{
Log.e("methodname",hideMethod[i].getName()+";andtheiis:"
+i);
}
//取得所有常量
Field[]allFields=clsShow.getFields();
for(i=0;i<allFields.length;i++)
{
Log.e("Fieldname",allFields[i].getName());
}
}
catch(SecurityExceptione)
{
//thrownewRuntimeException(e.getMessage());
e.printStackTrace();
}
catch(IllegalArgumentExceptione)
{
//thrownewRuntimeException(e.getMessage());
e.printStackTrace();
}
catch(Exceptione)
{
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
}</b>
执行时直接使用:
<b>publicstaticbooleanpair(StringstrAddr,StringstrPsw)
{
booleanresult=false;
=BluetoothAdapter
.getDefaultAdapter();
bluetoothAdapter.cancelDiscovery();
if(!bluetoothAdapter.isEnabled())
{
bluetoothAdapter.enable();
}
if(!BluetoothAdapter.checkBluetoothAddress(strAddr))
{//检查蓝牙地址是否有效
Log.d("mylog","devAdneffient!");
}
BluetoothDevicedevice=bluetoothAdapter.getRemoteDevice(strAddr);
if(device.getBondState()!=BluetoothDevice.BOND_BONDED)
{
try
{
Log.d("mylog","NOTBOND_BONDED");
ClsUtils.setPin(device.getClass(),device,strPsw);//手机和蓝牙采集器配对
ClsUtils.createBond(device.getClass(),device);
remoteDevice=device;//配对完毕就把这个设备对象传给全局的remoteDevice
result=true;
}
catch(Exceptione)
{
//TODOAuto-generatedcatchblock
Log.d("mylog","setPiNfailed!");
e.printStackTrace();
}//
}
else
{
Log.d("mylog","HASBOND_BONDED");
try
{
ClsUtils.createBond(device.getClass(),device);
ClsUtils.setPin(device.getClass(),device,strPsw);//手机和蓝牙采集器配对
ClsUtils.createBond(device.getClass(),device);
remoteDevice=device;//如果绑定成功,就直接把这个设备对象传给全局的remoteDevice
result=true;
}
catch(Exceptione)
{
//TODOAuto-generatedcatchblock
Log.d("mylog","setPiNfailed!");
e.printStackTrace();
}
}
returnresult;
}</b>
‘拾’ 安卓蓝牙耳机怎么配对
具体步骤:
1.我们在外出之前要记得给自己的蓝牙耳机充满电,以保证中途不会突然断电,像诺基亚BH-503蓝牙耳机,充满一次电就能使用十个小时以上,这对于经常出 门 的人来说是很不错的性能,并且诺基亚BH-503采用的是头戴式不容易掉落。
2.充满电之后,我们就可以开始进行连接配对了,首先我们先打开手机的蓝牙功能,一般的手机蓝牙选项在设置选项里面,设置选项菜单一打开基本就能看见了,不会太难找。一般的安卓智能手机还要在蓝牙选项里面在设置“可以被设备检测到”选项,让自己的蓝牙能够检测到自己的手机,诺基亚830就没有这一繁琐的步骤。
3.打开手机蓝牙后,我们还要打开蓝牙耳机,诺基亚BH-503的 开关 机方式是长按多功能件直至 指示灯 一直闪烁蓝光,这样就开机了并且能被连接(主要在闪烁绿光的时候不要松手,因为这样只是开机并不能被手机连接到)关机和开机差不多,长按多功能键,直至红光出现就算是关机了。
4.两个设备都打开蓝牙功能之后,我们就可以进行连接配对了。一般蓝牙功能都是在10左右才有效,所以不要距离太远。如果配对还提示需要配对密码的话,我们的蓝牙默认配对密码基本上都是四个零,输入密码点击配对,就可以进行配对了。如果连接不上,我们可以重新启动蓝牙,在进行重新配对。配对成功之后,蓝牙耳机会滴的一声以用来提示连接成功。这时诺基亚BH-503的指示灯就会以蓝色的光芒进行缓慢闪烁,这就算连接成功了。