2016-04-04 17 views
0

Ich möchte den Namen des Android-Geräts erhalten (d. H. Den "Namen", den der Benutzer durch Einstellungen ändern kann und den Sie unter "Einstellungen> Über das Gerät> Gerätename" finden).Name des Android-Geräts ohne Bluetooth

Andere Entwickler empfehlen, diesen Namen über Bluetooth zu erhalten.

Aber auf meinem Gerät (Samsung Galaxy S4) wird dieser Name nur aktualisiert, wenn ich Bluetooth aktivieren, also wenn ich den Namen ändere, wenn Bluetooth deaktiviert ist: der neue Name wird nicht angezeigt, bis ich Bluetooth aktiviere.

Ich frage mich, ob es eine Möglichkeit gibt, den aktualisierten Gerätenamen zu erhalten, ohne Bluetooth zu aktivieren? Ich kann wie eine Abhilfe denken:

  • Bluetooth ermöglicht
  • Namen
  • Bluetooth deaktivieren

bekommen, aber ich frage mich, ob eine elegantere Lösung besteht.

Antwort

0

Die Gerätenamen Sie sprechen, wird auch als bluetooth freundlichen Namen bekannt und daher ist es durch the bluetooth API Lesen ist vollkommen gültig.

Beachten Sie, dass, wenn Ihre App auf einem Nicht-Bluetooth-Gerät ausgeführt wird: dieser Name existiert nicht.

Wenn Sie sorgfältig the doc der Bluetooth-API lesen, werden Sie für die setName(...) Methode siehe:

... Wenn Bluetooth Zustand nicht state_on ist, wird diese API false zurück. Warten Sie nach dem Einschalten von Bluetooth auf ACTION_STATE_CHANGED mit STATE_ON, um den aktualisierten Wert zu erhalten.

Mit anderen Worten: Dieses Verhalten ist nicht speziell für Ihr Gerät, aber es funktioniert wie angegeben.

Ihre Abhilfe ist AFAIK die einzige Möglichkeit, den aktualisierten Namen zu erhalten, wenn Name geändert wurde, während Bluetooth deaktiviert war (und leider hat es schwerwiegende Nachteile: aktivieren/deaktivieren BT ist teuer).

Bitte beachten Sie auch, dass Sie auf ACTION_STATE_CHANGED mit STATE_ON warten müssen, um den aktualisierten Wert zu erhalten.