数日前、Google PlayストアにBluetooth Smart Scannerソフトウェアをダウンロードしました。私のSamsung Galaxy S3電話機にインストールした後、Bluetooth LEデバイスを正常にスキャンできました。Samsung Galaxy S3を使用してBluetoothLEデバイスへの接続を作成
私はBluetooth LEデバイスをスキャンするすべての方法を試しましたが、私のコンピュータに何も表示されませんでした。だから、私はこのソフトウェアを逆コンパイルしました。パッケージandroid.bluetooth
にstartLeDiscovery()
メソッドがありました。しかし、何が私を混同することは、私が正常にできるように、この方法は、最後にAndroidのSDKの私の
には存在しなかったことを、私は、BlutoothAdapter.class
ファイルおよびBluetoothスマートスキャナソフトウェアの彼らとandroid.jar
のBluetoothDevice.class
ファイルを置き換えました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の携帯電話でBluetooth LEデバイスを正常にスキャンしたことが判明しました。それ以外の場合は、
com.samsung.bluetoothle
パッケージもあることがわかりました。同様に、私は
android.jar
にそれを加えました。しかし、そのパッケージ内のメソッドを使用してLEデバイスに接続できませんでした。
長い間私たちを悩ませているこの問題を解決するために、あなたから助けをお願いします。開発を容易にするために、私はandroid.jar
をウェブサイトに投稿します。 startLeDiscovery()
方法とその他の方法がandroid.bluetooth
ディレクトリに表示されます。もちろん、android
ディレクトリにcom.samsung.bluetoothle
パッケージもあります。
android.jar
パッケージhere(Mirror)をダウンロードできます。