导航:首页 > 操作系统 > android蓝牙配对

android蓝牙配对

发布时间:2022-02-22 17:04:14

‘壹’ 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的指示灯就会以蓝色的光芒进行缓慢闪烁,这就算连接成功了。

阅读全文

与android蓝牙配对相关的资料

热点内容
java转sql 浏览:703
android获取apn 浏览:71
phpfpm进程池 浏览:791
解压掏耳朵音频 浏览:670
爬香山解压 浏览:948
算法导论回溯 浏览:339
开盘指标源码查询 浏览:526
有道云保存服务器出错 浏览:639
生成360文件夹 浏览:1004
图库的文件夹是哪个 浏览:505
程序员为什么药学日语 浏览:423
熟悉linux常用命令 浏览:860
印度外卖小哥是程序员 浏览:413
绍兴程序员开发驻场流程 浏览:546
索纳塔8的压缩比 浏览:16
私有云主要服务器 浏览:939
为什么主题解压那么慢 浏览:862
怎么下载扫描二维码的手机app 浏览:729
云服务器创建私有镜像的时候一定要关机吗 浏览:117
php开发学习门户 浏览:387