SORU
25 Temmuz 2013, PERŞEMBE


Android 4.3 Düşük Enerji dengesiz Bluetooth

Şu anda Bluetooth Düşük Enerji (Nexus 4 üzerinde test) için kullanılacak bir uygulama geliştiriyorum. Sonra başlangıç ile resmi BLE API Android 4.3, bende fark ettim bundan sonra bağlayın bir cihaz ilk defa duyuyorum nadiren mümkün için başarıyla bağlanmak için / iletişim cihazı veya başka bir cihaz daha.

Kılavuzu aşağıdaki here başarılı bir cihaza bağlanmak, hizmetleri ve özellikleri tarama ve/yazmak/herhangi bir sorun olmadan bildirimleri almak okuyabiliyorum. Bağlantıyı kesme ve yeniden bağlanma sonra ancak, genellikle ya/özellikleri veya okuma/yazma tamamlamak için tarama hizmetleri için kuramıyorum. Hiçbir şey bunun neden olduğunu belirtmek için günlükleri bulamıyorum.

Bu gerçekleştikten sonra uygulamayı kaldırın, Bluetooth devre dışı bırakın ve tekrar çalışmaya başlamadan önce telefonu yeniden başlatmak zorunda kalıyorum.

Bir cihaz emin yakın çağrı yapıyorum bağlantısı zaman() BluetoothGatt ve null nesne ayarlayın. Herhangi bir düşüncesi olan?


DÜZENLEME:
Bu benim telefon ve /etc/bluetooth/bt_stack ilgili öğeleri izleme düzeylerini artırdı I köklü günlükleri.günlük döker: conf

Successful connection - Önce telefonu yeniden başlatıp uygulamayı yükledikten sonra deneyin. Bağlanmak mümkün duyuyorum, bütün hizmetleri/özellikleri keşfetmek ve okuma/yazma.

Failed Attempt 1 - Bu başarılı bağlantısından yukarıda kestikten sonra bir sonraki denemem. Özellikleri tespit etmeyi başardı gibi görünüyor, ama okumak için ilk girişimi null bir değer geri döndü ve kısa bir süre sonra kesildi.

Failed Attempt 2 - hatta hizmet/özellikleri bulmak mümkün olmadığım Bir örnek.


EDİT 2:
Hangi Tİ dayanır bağlanmaya çalışıyorum cihaz CC2541 chip. TI SensorTag (ayrıca CC2541 dayalı) ile oynamak için almış olduğum ve TI SensorTag an android app dün açıklanan keşfetti. Ancak, bu uygulama varaynı sorun.Test ettim bu diğer iki Nexus 4s ile aynı sonuç: Bağlantı SensorTag başarılı ilk veya ikinci kez, ama (göre günlükleri) başarısız keşfetmek hizmetleri bundan sonra, neden her türlü çöker. Eğer bu özel çip ile ilgili bir sorun var diye merak etmeye başladım?

CEVAP
19 EYLÜL 2013, PERŞEMBE


Uygulamanın önemli ipuçları

Belki bu ipuçları bazı gerekli işletim sistemi güncellemeleri Android için artık bağlı değil.

  1. 4.3 take 45 seconds to connect using an existing gatt instance Android ile Nexus 4 gibi Bazı cihazlar. Çözüm: her Zaman ve her gatt taze bir örnek çıkarın oluştur gatt örneklerini kapatın bağlayın.
  2. android.bluetooth.BluetoothGatt#close() aramayı unutma
  3. Samsung için önemli Android 4.3 ile Galaxy S3(en azından JSS15J kurmak.İ9300XXUGMK6): BluetoothDevice#connectGatt(Context context, boolean autoConnect, BluetoothGattCallback callback) eğer aynı iplik LeScanCallback() {...}.onLeScan(BluetoothDevice device, int rssi, byte[] scanRecord) içinde adı her zaman başarısız olur. Çözüm: onLeScan(..) ve sonra da bağlantı içinde yeni bir konu Başlatmak.
  4. Most devices filter advertising
  5. Daha iyi Bu tamamen Samsung Android 4.3 ve genel olarak doesn't work for 128bit UUIDs ile Galaxy S3 kırık olduğu için, belli bir hizmet olacak biçimde filtre için parametre ile android.bluetooth.BluetoothAdapter#startLeScan(UUID[] serviceUuids, LeScanCallback callback) kullanın.
  6. Gatt her zaman bir seferde bir komut işleyebilir. Birkaç komutları kısa bir sonra adlı bir due to the synchronous nature of the gatt implementation. iptal olur

Yeni gelenler için oldukça TAMAM bir giriş noktası bu video öğretici olabilir:Gelişmekte olan Android için Akıllı Uygulamalar Bluetooth http://youtu.be/x1y4tEHDwk0

Sorunu ve aşağıda açıklanan geçici bir çözüm muhtemelen OS güncelleme: şimdi sabittir

Çözüm: ben "stabilize" uygulamamı yapıyor...

  1. Ben kullanıcı için uygun bir ortam sağlar "". Yeniden Bluetooth Eğer bu ayar etkinse, ben başlamak gösteren bazı noktalarda Bluetooth yeniden BLE yığın kararsız olmak. E. g. eğer startScan false değerini döndürür. İyi bir nokta da eğer serviceDiscovery failes olabilir. Ben sadece ve Bluetooth kapatın.
  2. Başka bir ayar sağlamak "WiFi Devre". Eğer bu ayar etkinse, benim app çalışırken Wifi (ve daha sonra geri döner) kapatır

Bu geçici follwoing deneyimlerine dayanarak

  • Yeniden Bluetooth çoğu durumda BLE ile sorunları çözmek için yardımcı olur
  • Eğer kapalı Wifi kapatırsanız, BLE çok daha dengeli olur yığını. Ancak, aynı zamanda wifi açık en cihazlar üzerinde çalışıyor.
  • Eğer kapalı Wifi kapatırsanız, yeniden Bluetooth tam olarak BLE çoğu durumda, cihazı yeniden başlatmak için gerek kalmadan yığın kurtarır.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • alexis gillis

    alexis gilli

    23 HAZİRAN 2011
  • Arun Kumar

    Arun Kumar

    18 Mart 2010
  • HTC

    HTC

    12 Ocak 2006