Wie erhalten Sie den benutzerdefinierten “Gerätenamen” in Android?

Lesezeit: 5 Minuten

Wie erhalten Sie den benutzerdefinierten Geratenamen in Android
Chris Whittle

Ich versuche, den benutzerdefinierten Gerätenamen abzurufen, der in den Einstellungen festgelegt ist. Ich habe mehrere Möglichkeiten ausprobiert und bisher nichts.

Wenn es hilft oder weh tut, brauche ich es in einem BroadcastReceiver

Danke

Das hat mir gebracht, was ich brauchte…
http://cmanios.wordpress.com/2012/05/09/bluetooth-adapter-device-name-and-mac-address-in-android/

BluetoothAdapter myDevice = BluetoothAdapter.getDefaultAdapter();
    String deviceName = myDevice.getName();

Stellen Sie sicher, dass Sie hinzufügen

<uses-permission android:name="android.permission.BLUETOOTH"/>

zu deinem Manifest

  • Sie können Ihre eigene Antwort akzeptieren. Da es schwer gewesen wäre zu erraten, dass Sie in Ihrer Frage über Bluetooth gesprochen haben, habe ich dem Titel ein Tag und eine Erwähnung hinzugefügt.

    – Chris Stratton

    24. Mai ’13 um 2:08

  • In den Einstellungen steht auf keinem der Geräte, mit denen ich gearbeitet habe, etwas über Bluetooth. Ich bin durch Versuch und Irrtum gegangen, bis ich es gefunden habe.

    – Chris Whittle

    24. Mai ’13 um 12:10

  • Okay, ich habe meine Bearbeitung zurückgesetzt. Ihre Lösung zeigt jedoch, dass das Problem keine allgemeine Lösung ist – auf vielen Geräten ist das, was Sie versuchen, einfach überhaupt nicht möglich, da der Benutzer keine Möglichkeit hat, das Gerät zu benennen.

    – Chris Stratton

    24. Mai ’13 um 20:05

  • beachten Sie bitte. Da diese Antwort funktioniert, müssen Sie Ihr Gerät dennoch neu starten, wenn Sie Ihren Gerätenamen in Ihren Geräteeinstellungen aktualisieren, damit Sie den aktualisierten Namen erhalten.

    – ralphgabb

    20. Mai ’15 um 4:43

  • Da BT zwingend erforderlich ist, um das Telefon mit Google Apps zu versenden, können wir davon ausgehen, dass alle Geräte außer einigen wenigen wie Amazon Kindle BT haben.android.stackexchange.com/questions/24464/…

    – Granat

    19. Januar ’16 um 12:41

Wie erhalten Sie den benutzerdefinierten Geratenamen in Android
kakopappa

BluetoothAdapter myDevice = BluetoothAdapter.getDefaultAdapter();
String deviceName = myDevice.getName();

gibt Galaxy S5 zurück.

String deviceName = android.os.Build.MODEL;
returns SM-G900H.

Nach einiger Recherche fand ich den Gerätenamen in /data/data/com.android.providers.settings/databases/settings.db

Also, um es mit dem Shell-Befehl zu bekommen

shell@k3g:/ $ settings get system device_name
settings get system device_name
Milky Way

Java verwenden

String deviceName = Settings.System.getString(getContentResolver(), "device_name");
returns Milky Way

POC-Github-Projekt
https://github.com/kakopappa/getdevcicename

ausführliche Erklärung:
http://androidbridge.blogspot.com/2016/09/how-to-get-android-device-name-settings.html

  • Dies gab eine Null zurück 🙁

    – Lavekush Agrawal

    27. November ’17 um 8:04

  • Dies gibt zurück, wie der Benutzer sein Gerät in den Einstellungen benannt hat: settings get global device_name und auf java Settings.Global.getString(getContentResolver(), "device_name");

    – F0r3v3r-A-N00b

    16. Oktober ’18 um 3:49


  • Dieser Shell-Befehl gibt auf Android P (Pixel) “null” zurück, obwohl der Wert im Abschnitt “Einstellungen” des Telefons festgelegt wurde.

    – Richard Le Mesurier

    5. Februar ’19 um 12:38

  • Der Settings.System Methode gibt jetzt auch “null” zurück.

    – Richard Le Mesurier

    5. Februar ’19 um 12:44

  • vielen Dank für die Bereitstellung dieser Antwort, die die Frage so interpretiert, dass sie sich auf den vom Benutzer zugewiesenen Namen des Geräts bezieht, nicht auf den Modellnamen des Geräts. Wie andere bereits erwähnt haben, scheint keine der Methoden hier mit meinem Kindle (Android 5.1.1) zu funktionieren. Sie kehren unterschiedlich zurück null, Fire, oder KFDOWI. Hm. Android-Dokumente sagen, dass device_name in API-Level 25 hinzugefügt wurde, was anscheinend Fire OS 6 bedeutet, also denke ich, dass dies sinnvoll ist. irgendwie. warum ist settings get global device_name dann überhaupt etwas zurückgeben?

    – orion elenzil

    15. Mai ’19 um 22:25

Zusammenfassend lässt sich sagen, dass es keine einheitliche Methode zum Abrufen des benutzerdefinierten Gerätenamens gibt.

Es gibt jedoch zahlreiche Dienstprogramme, die Sie verwenden können, die auf verschiedenen Modellen und Herstellern funktionieren:

  1. Settings.System.getString(getContentResolver(), “bluetooth_name”); (Dokumente)
  2. Settings.Secure.getString(getContentResolver(), “bluetooth_name”); (Dokumente)
  3. BluetoothAdapter.getDefaultAdapter().getName(); (Dokumente)
  4. Settings.System.getString(getContentResolver(), “device_name”); (Dokumente)
  5. Settings.Secure.getString(getContentResolver(), “lock_screen_owner_info”); (Dokumente)

1, 2 und 3 scheinen auf den Geräten, die mein Kollege getestet hat, am zuverlässigsten zu sein. Hier seine vollständige Analyse:

Ergebnistabelle der Benutzergerätenamen

Quelle: https://medium.com/@pribble88/how-to-get-an-android-device-nickname-4b4700b3068c

  • Leider funktioniert keine dieser Methoden auf dem Pixel 2 XL-Emulator (API 28). Sie alle geben null zurück!

    – t-gao

    14. Mai ’19 um 9:47

1641980477 642 Wie erhalten Sie den benutzerdefinierten Geratenamen in Android
Neelam Verma

Folgende Werke für mich

String deviceName = Settings.Global.getString(<Context>.getContentResolver(), Settings.Global.DEVICE_NAME);

Dieser funktionierte für mich auf API 25:

Settings.Secure.getString(getContentResolver(), "bluetooth_name");

So finden Sie es… (Ersetzen Sie einfach den Namen Ihres Geräts)

$ adb shell
$ settings list system | grep "<device_name>"
$ settings list secure | grep "<device_name>"

  • In meiner Version von ADB (1.0.36) in macOS hat der Einstellungsbefehl kein a list Option, nur get und put.

    – jk7

    15. Feb. 17 um 19:15


  • Korrektur: Die settings Shell-Befehl auf meinem billigen LG-Trafone hat das nicht list Möglichkeit.

    – jk7

    15. Februar ’17 um 19:37

  • Nur um eine weitere Variante hinzuzufügen, mein Samsung J2 hat den Gerätenamen in den globalen Einstellungen. settings list global | grep "<device_name>"

    – Seit

    25. März ’20 um 20:33


1641980477 618 Wie erhalten Sie den benutzerdefinierten Geratenamen in Android
ArturSkowronski

Benutzen:

String deviceName = android.os.Build.MODEL;

  • In meiner Version von ADB (1.0.36) in macOS hat der Einstellungsbefehl kein a list Option, nur get und put.

    – jk7

    15. Feb. 17 um 19:15


  • Korrektur: Die settings Shell-Befehl auf meinem billigen LG-Trafone hat das nicht list Möglichkeit.

    – jk7

    15. Februar ’17 um 19:37

  • Nur um eine weitere Variante hinzuzufügen, mein Samsung J2 hat den Gerätenamen in den globalen Einstellungen. settings list global | grep "<device_name>"

    – Seit

    25. März ’20 um 20:33


1641980477 635 Wie erhalten Sie den benutzerdefinierten Geratenamen in Android
Schpand

Keine der oben genannten Methoden funktioniert für alle Geräte. Wenn Sie einen robusten Weg suchen, um zu erhalten benutzerdefinierter Gerätename auf fast allen Android-Geräten (einschließlich TV) und die keine Berechtigungen benötigen, verwenden Sie dies

String userDeviceName = Settings.Global.getString(getContentResolver(), Settings.Global.DEVICE_NAME);
if(userDeviceName == null)
    userDeviceName = Settings.Secure.getString(getContentResolver(), "bluetooth_name");

.

436740cookie-checkWie erhalten Sie den benutzerdefinierten “Gerätenamen” in Android?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy