几天前,我在Google Play商店下载了蓝牙智能扫描仪软件。在我的三星Galaxy S3手机上安装后,我可以成功扫描我的蓝牙LE设备。使用三星Galaxy S3创建与BluetoothLE设备的连接
即使我已经尝试过所有方法来扫描我的蓝牙LE设备,但我的电脑上并没有显示任何内容。所以我反编译这个软件,android.bluetooth
包中有一个startLeDiscovery()
的方法。但是我感到困惑的是,这种方法并没有在我的Android SDK 15
的android.jar
最后存在,我更换了BlutoothAdapter.class
文件和BluetoothDevice.class
文件android.jar
与他们的蓝牙智能扫描软件,这样我就可以成功在Eclipse中调用startLeDiscovery()
方法。源代码如下所示。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
IntentFilter intent = new IntentFilter();
intent.addAction(BluetoothDevice.ACTION_FOUND);
intent.addAction(BluetoothDevice.EXTRA_UUID);
intent.addAction(BluetoothDevice.ACTION_GATT_PRIMARY_UUID);
registerReceiver(searchDevices, intent);
//bluetooth.discovery();
bluetooth.startLeDiscovery();
}
private BroadcastReceiver searchDevices = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
BluetoothDevice device = null;
if (BluetoothDevice.ACTION_FOUND.equals(action)) {
device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
String msg = device.getName()+"\n"+device.getAddress();
Log.i("hella",msg);
bluetooth.cancelDiscovery();
connectDevice(device);
}
}
};`
事实证明,我成功地在Galaxy S3手机上扫描了我的蓝牙LE设备,就像我想的那样。否则,我发现那里也有一个com.samsung.bluetoothle
包。同样,我将其添加到我的android.jar
中。但是我无法使用那个包中的那些方法连接到我的LE设备。
我恳请您的帮助,以解决长期困扰我们的问题。为了促进发展,我将在网站上提供我的android.jar
。您将在android.bluetooth
目录中看到startLeDiscovery()
方法和其他方法。当然,android
目录中还有一个com.samsung.bluetoothle
包。
您可以下载android.jar
包here(Mirror)。