数日前、Google Play ストアで Bluetooth Smart Scanner ソフトウェアをダウンロードしました。Samsung Galaxy S3 電話にインストールした後、Bluetooth LE デバイスを正常にスキャンできました。
あらゆる方法で Bluetooth LE デバイスをスキャンしようとしましたが、コンピュータには何も表示されませんでした。そこでこのソフトを逆コンパイルするstartLeDiscovery()
と、パッケージにメソッドがありましたandroid.bluetooth
。android.jar
しかし、私を混乱させたのは、このメソッドが私の Android SDK 15 には存在しなかったことです。
最後に、 のBlutoothAdapter.class
ファイルとBluetoothDevice.class
ファイルandroid.jar
を Bluetooth Smart Scanner ソフトウェアのファイルに置き換えたのでstartLeDiscovery()
、Eclipse でメソッドを正常に呼び出すことができました。ソースコードは以下の通り。
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電話でBluetooth LEデバイスを正常にスキャンしたことがわかりました。そうでなければ、そこにもcom.samsung.bluetoothle
パッケージがあることがわかりました。同じように、私はそれを私の中に追加しましたandroid.jar
。しかし、そのパッケージのメソッドを使用して LE デバイスに接続できませんでした。
長い間私たちを悩ませてきたこの問題を解決するために、あなたからの助けをお願いします. 開発を容易にするために、私は自分のウェブサイトに貢献android.jar
します。startLeDiscovery()
メソッドとその他のメソッドがandroid.bluetooth
ディレクトリに表示されます。もちろん、 ディレクトリにもcom.samsung.bluetoothle
パッケージがあります。android