今天做一个功能,APP连接蓝牙打印机,但是每次连接都要弹一个系统弹窗输入Pin,很不爽,一般Pin都是0000或者1234,所以想能不能让程序去自动输入匹配呢?随后Google了一大堆出来,基本都是以前的代码,我就从网上一个通用的工具类,做了一些修改经过边测边改一整天,基本上实现了这个功能,大部分情况下Pin窗会一闪而过,但是也偶尔会弹出来,或者连接上之后等一段时间会弹出来,这样子,希望能和大家讨论交流,下面上代码:
首先是修改过后的蓝牙自动配对工具类:
/**
* Created by caolicheng on 14/12/1.
* 蓝牙自动配对工具类
*/
import android.bluetooth.BluetoothDevice;
import android.util.Log;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import me.ele.omniknight.common.tools.AppLogger;
public class ClsUtils {
/**
* 与设备配对 参考源码:platform/packages/apps/Settings.git
* /Settings/src/com/android/settings/bluetooth/CachedBluetoothDevice.java
*/
static public boolean createBond(Class btClass, BluetoothDevice btDevice)
throws Exception {
Method createBondMethod = btClass.getMetho