2011-10-15 4 views
-1

Je développe une application dans que j'ai besoin juste numéro MIEI d'appareil ...DeviceId() me montre nullpointer?

J'ai essayé:

telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE); 
     imie = telephonyManager.getDeviceId(); 

En Menifiest:

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

Laissez-moi dire, si ce besoin d'autres choses à faire ??

merci d'avance.

+0

émulateur utilisez-vous et exécuter cette application sur l'émulateur? .. –

+0

Vous testez sur émulateur? Sur l'émulateur, il donnera un pointeur nul. – anujprashar

+0

ya je teste dans l'émulateur. – Siten

Répondre

0

Je pense que vous faites bien, mais selon la Android Developers Blog:

Nous avons vu quelques exemples de téléphones de production dont la mise en œuvre est buggy et renvoie les déchets, par exemple des zéros ou des astérisques.

De plus, il ne fonctionnera probablement pas sur un émulateur.

+0

avant un jour il me donne "000000000" comme ça – Siten

+0

soudainement il me donne zéro pointeur – Siten

0

Il ne s'agit pas du numéro IMIE de l'appareil, mais si vous avez juste besoin d'un identifiant pour l'appareil, vous pouvez également essayer Build.SERIAL. Comme getDeviceId() la valeur peut ne pas toujours être unique ou disponible mais c'est une autre option à essayer quand la première méthode échoue.

+0

signifie comment puis-je utiliser cela? – Siten

0

suivant peut ne pas fonctionner correctement sur émulateur ..

TelephonyManager TelephonyMgr = (TelephonyManager)getSystemService(TELEPHONY_SERVICE); 
String szImei = TelephonyMgr.getDeviceId(); // Requires READ_PHONE_STATE 

Maintenant parfois son besoin d'obtenir le numéro unique de l'appareil non téléphonique (par exemple comprimé) à ce moment-là, nous pouvons créer pseudo-ID unique, que fonctionne sur tous les appareils Android qui donne un numéro unique comme IMIE. L'identifiant ainsi calculé ne sera pas unique: il est possible de trouver deux appareils avec le même identifiant (basé sur le même matériel et l'image ROM) mais les chances dans les applications du monde réel sont négligeables. A cet effet, vous pouvez utiliser la classe de construction:

String PUID = Build.BOARD.length()%10+ Build.BRAND.length()%10 + 
      Build.CPU_ABI.length()%10 + Build.DEVICE.length()%10 + 
      Build.DISPLAY.length()%10 + Build.HOST.length()%10 + 
      Build.ID.length()%10 + Build.MANUFACTURER.length()%10 + 
      Build.MODEL.length()%10 + Build.PRODUCT.length()%10 + 
      Build.TAGS.length()%10 + Build.TYPE.length()%10 + 
      Build.USER.length()%10 ; 

PUID retournera le numéro 13 chiffres et nous ajoutons deux autres à l'avant (35) pour avoir le même ID de taille comme le IMEI (15 chiffres).

PUID = "35" + PUID; 

et génial pense que nous n'avons pas besoin d'ajouter l'autorisation READ_PHONE_STATE en utilisant le code ci-dessus.

Pour plus d'aide pour générer visite numéro unique pocket magic.