Obtenir le Nom du Propriétaire d'un Appareil Android
Le code suivant fonctionne sur un émulateur, mais ne parvient pas à exécuter sur le Samsung Galaxy S III.
final String[] projection = new String[]
{ ContactsContract.Profile.DISPLAY_NAME };
String name = null;
final Uri dataUri = Uri.withAppendedPath(ContactsContract.Profile.CONTENT_URI, ContactsContract.Contacts.Data.CONTENT_DIRECTORY);
final ContentResolver contentResolver = getContentResolver();
final Cursor c = contentResolver.query(dataUri, projection, null, null, null);
try
{
if (c.moveToFirst())
{
name = c.getString(c.getColumnIndex(ContactsContract.Profile.DISPLAY_NAME));
}
}
finally
{
c.close();
}
System.out.println(name);
Ici est l'exception:
12-03 20:57:15.751: E/AndroidRuntime(28172): FATAL EXCEPTION: main
12-03 20:57:15.751: E/AndroidRuntime(28172): java.lang.RuntimeException: Unable to start activity ComponentInfo{ht.smca.flashligh/ht.smca.flashligh.MainActivity}: java.lang.NullPointerException
12-03 20:57:15.751: E/AndroidRuntime(28172): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2100)
12-03 20:57:15.751: E/AndroidRuntime(28172): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2125)
12-03 20:57:15.751: E/AndroidRuntime(28172): at android.app.ActivityThread.access$600(ActivityThread.java:140)
12-03 20:57:15.751: E/AndroidRuntime(28172): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1227)
12-03 20:57:15.751: E/AndroidRuntime(28172): at android.os.Handler.dispatchMessage(Handler.java:99)
12-03 20:57:15.751: E/AndroidRuntime(28172): at android.os.Looper.loop(Looper.java:137)
12-03 20:57:15.751: E/AndroidRuntime(28172): at android.app.ActivityThread.main(ActivityThread.java:4898)
12-03 20:57:15.751: E/AndroidRuntime(28172): at java.lang.reflect.Method.invokeNative(Native Method)
12-03 20:57:15.751: E/AndroidRuntime(28172): at java.lang.reflect.Method.invoke(Method.java:511)
12-03 20:57:15.751: E/AndroidRuntime(28172): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1006)
12-03 20:57:15.751: E/AndroidRuntime(28172): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:773)
12-03 20:57:15.751: E/AndroidRuntime(28172): at dalvik.system.NativeStart.main(Native Method)
12-03 20:57:15.751: E/AndroidRuntime(28172): Caused by: java.lang.NullPointerException
12-03 20:57:15.751: E/AndroidRuntime(28172): at com.android.internal.os.LoggingPrintStream.println(LoggingPrintStream.java:298)
12-03 20:57:15.751: E/AndroidRuntime(28172): at ht.smca.flashligh.MainActivity.onCreate(MainActivity.java:68)
12-03 20:57:15.751: E/AndroidRuntime(28172): at android.app.Activity.performCreate(Activity.java:5206)
12-03 20:57:15.751: E/AndroidRuntime(28172): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1083)
12-03 20:57:15.751: E/AndroidRuntime(28172): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2064)
12-03 20:57:15.751: E/AndroidRuntime(28172): ... 11 more
Des Suggestions? Je ne ce à des fins d'apprentissage, c'est à dire pour un séminaire.
Qu'est-ce que la ligne 68 en MainActivity? S'il vous plaît poster.
Vous avez java exception de pointeur null si le nom est null. Mettre votre système..println() dans la essayez et vous n'aurez pas cette erreur. Après pour obtenir le nom, je ne sais pas vraiment
Ligne 68 est println. Mon but est de vraiment obtenir le nom, mais je suis nulle sur le périphérique réel. Comme pour l'émulateur, ce code sorties de support de l'appareil dans la console.
Assurez-vous que vous avez connecté à votre téléphone compte Gmail.
Vous avez java exception de pointeur null si le nom est null. Mettre votre système..println() dans la essayez et vous n'aurez pas cette erreur. Après pour obtenir le nom, je ne sais pas vraiment
Ligne 68 est println. Mon but est de vraiment obtenir le nom, mais je suis nulle sur le périphérique réel. Comme pour l'émulateur, ce code sorties de support de l'appareil dans la console.
Assurez-vous que vous avez connecté à votre téléphone compte Gmail.
OriginalL'auteur Danny Lo | 2013-12-03
Vous devez vous connecter pour publier un commentaire.
Vous avez java exception de pointeur null si le nom est null. Mettre votre système..println() dans la essayez et vous n'aurez pas cette erreur. Après pour obtenir le nom, je ne sais pas vraiment, Vêtus de
Pas mon post, mais votre réponse :
Android Nom De L'Appareil (pour appareil android modèle de mon mauvais)
Voici deux façons de le faire :
Comment puis-je obtenir le nom d'utilisateur google sur Android?
Comment puis-je obtenir le prénom (ou le nom complet de l'utilisateur du téléphone?
Ah oki, de toute façon votre Null venir à partir de votre initialisation comme je vous l'ai dit. Après je ne peux pas vraiment tester dès maintenant, mais peut-être quelque chose comme android.os.Construire.De l'UTILISATEUR; peut travailler
OriginalL'auteur Clad Clad
Ce sera vous aider à obtenir le nom du propriétaire enregistré sur le périphérique:
Assurez-vous d'ajouter cette autorisation dans le manifeste:
C'est de travailler pour moi. Si vous voulez, vous pouvez l'essayer.
Depuis, il n'y aurait plus d'un compte dans le dispositif. Puis il donnera le nom d'affichage du premier compte. C'est peut-être pas de google compte dans certains cas.
Une application en lui demandant la permission de lire TOUS les contacts est suspect. Ce droit ne doit pas être nécessaire de lire simplement le nom de la propriétaire.
Je ne pense pas que android.la permission.READ_PROFILE est légitime d'autorisation. Au moins, il n'est pas là dans le MANIFESTE de la classe de l'Android 25 API. Cet appel fonctionne sans elle, aussi longtemps que vous avez le READ_CONTACTS autorisation.
OriginalL'auteur Joel Fernandes
OriginalL'auteur Vishnu Singh
Ce code vous donnera propriétaire des informations complètes
Essayez ce code:
OriginalL'auteur Sanjit Majee
Utiliser le code ci-dessus pour aller chercher les propriétaires de nom de périphérique android. En fait cela va chercher le nom stocké dans les contacts pour moi de l'utilisateur.
Note : Il y aura une exception comme le ci-dessous pour quelques utilisateurs
Cette exception n'est pas de téléphone spécifique ou spécifique à l'utilisateur. Certains utilisateurs n'ont pas leur propre contact dans la liste de contacts. Donc, pour résoudre ce l'utilisateur sur lequel l'application est démarrée besoins de l'installation dans l'application Contacts de la première ligne qui est de ME contacter. Il suffit d'entrer votre nom dans les informations personnelles et de carte sera généré.
@Leejjon ^^
OriginalL'auteur Prateek Alakh