2016-06-21 9 views
0
BluetoothLeAdvertiser advertiser = BluetoothAdapter.getDefaultAdapter().getBluetoothLeAdvertiser(); 

Dies gibt null zurück. Ich habe auf einer API 21 und auf einem API 23-Gerät versucht, aber mit dem gleichen Ergebnis. Ich habe keine Ahnung, was mir fehlt.getBluetoothLeAdvertiser() gibt null zurück

Die App baut und läuft gut, bis natürlich der Werbetreibende verwendet wird und die App abstürzt.

Ich freue mich über jede Hilfe zur Verfügung gestellt! :)

+0

dies relevant sein könnten beginnen: http://stackoverflow.com/questions/26441785/ does-bluetoothleadvertiser-work-on-a-nexus-5-mit-android-5-0 – Nfear

+0

Es ist möglich, dass Ihr Gerät den Bluetooth LE-Peripheriemodus nicht unterstützt. Hier ist [Diskussion über unterstützte Modelle] (http://stackoverflow.com/questions/26482611/chipsets-devices-support-android-5-ble-peripheral-mode) und im Moment [diese Seite] (https: // altbeacon .github.io/android-beacon-library/beacon-transmitter-devices.html) ist wahrscheinlich die beste Quelle für solche Informationen. –

+0

Wow, ok- danke. Gibt es eine andere Möglichkeit, ein Bluetooth-Signal von einem Android-Gerät zu senden? – Anfaje

Antwort

4

Wenn Sie die Entwicklerdokumente überprüfen, verknüpfen Sie here. Sie werden sehen, dass die Null-Objekt in dem folgenden Fall zurückgegeben:

Gibt ein BluetoothLeAdvertiser Objekt für Bluetooth LE Werbung Operationen. Gibt null zurück, wenn Bluetooth deaktiviert ist oder wenn Bluetooth LE Advertising auf diesem Gerät nicht unterstützt wird.

Wenn Sie nicht sicher sind, ob das Gerät Bluetooth überhaupt unterstützt, sollten Sie überprüfen, ob die BluetoothAdapter durch das System zurückgeführt ist null

BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); 
if (mBluetoothAdapter == null) { 
    // Device does not support Bluetooth 
} 

sie Sie dann beraten isMultipleAdvertisementSupported() anrufen, um zu sehen, ob es zuerst unterstützt wird .

if(!mBluetoothAdapter.isMultipleAdvertisementSupported()){ 
    //Device does not support Bluetooth LE 
} 

Wenn es BLE unterstützt Sie müssen prüfen, ob Bluetooth aktiviert ist und wenn nicht, machen sie dem Benutzer bewusst und es lösen.

if (!mBluetoothAdapter.isEnabled()) { 
Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); 
    startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT); 
} 

, dass die meisten der Zeit abdecken sollte der Adapter null

0

prüfen mBluetoothAdapter != null && mBluetoothAdapter.isEnabled(), bevor Sie den Scan