2012-11-01 7 views
8

数日前、Google PlayストアにBluetooth Smart Scannerソフトウェアをダウンロードしました。私のSamsung Galaxy S3電話機にインストールした後、Bluetooth LEデバイスを正常にスキャンできました。Samsung Galaxy S3を使用してBluetoothLEデバイスへの接続を作成

私はBluetooth LEデバイスをスキャンするすべての方法を試しましたが、私のコンピュータに何も表示されませんでした。だから、私はこのソフトウェアを逆コンパイルしました。パッケージandroid.bluetoothstartLeDiscovery()メソッドがありました。しかし、何が私を混同することは、私が正常にできるように、この方法は、最後にAndroidのSDKの私の

には存在しなかったことを、私は、BlutoothAdapter.classファイルおよびBluetoothスマートスキャナソフトウェアの彼らとandroid.jarBluetoothDevice.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パッケージhereMirror)をダウンロードできます。

答えて

0

android.jarファイルがあなたのAndroidデバイス上で既に利用されているクラスであると考えられている:私が正しくリコール場合は、これらのクラスは、あなたのアプリケーションのために生成されたAPKに含まれていないので、android.jarcom.samsung.bluetoothleクラスを追加することはありませんそれらはあなたのアプリに追加されます。

android.jarファイルを逆コンパイルして追加するのではなく、サムスンのウェブサイト(http://developer.samsung.com/ble)からSDK全体をダウンロードし、それを推奨された方法で使用してみませんか?

0

AndroidManifest.xmlでuses-libraryタグを使用して、Galaxy S3 Bluetoothライブラリを使用するようにアプリに指示する必要があります。 Samsungは開発者用のライブラリを公にリリースしていないので、コンパイルするには自分のjarファイルを作成する必要がありますが、apkのパッケージにjarファイルは含めないでください。

<uses-library android:name="com.samsung.bluetoothle.BluetoothLEClientProfile" android:required="false" /> 

BluetoothAdapterとBluetoothDeviceのメソッドにアクセスするには、リフレクションを使用して必要なメソッドへの参照を取得し、そのように呼び出すのが最良です。

関連する問題