2010-10-07 4 views
3

Je voudrais obtenir le cid de mon téléphone portable, je suis actuellement en utilisant ce code pour le faire:id portable Android

GsmCellLocation gsmLocation = (GsmCellLocation)telephonyManager.getCellLocation(); 
       int Cid = gsmLocation.getCid(); 
       Log.e("#############","current cid is: "+Cid); 
       int lac = gsmLocation.getLac(); 
       Log.e("#############","current lac is: "+lac); 

cela retourne quelque chose comme 301 ou 6061.

Je naviguais certains exemples de codes et trouvé ceci:

/** 
* Seems that cid and lac shall be in hex. Cid should be padded with zero's 
* to 8 numbers if UMTS (3G) cell, otherwise to 4 numbers. Mcc padded to 3 
* numbers. Mnc padded to 2 numbers. 
*/ 
try { 
// Update the current location 
updateLocation(getPaddedHex(cid, cellPadding), getPaddedHex(lac, 4), 
    getPaddedInt(mnc, 2), getPaddedInt(mcc, 3)); 
strResult = "Position updated!"; 
} catch (IOException e) { 
strResult = "Error!\n" + e.getMessage(); 
} 

// Show an info Toast with the results of the updateLocation 
// call. 
Toast t = Toast.makeText(getApplicationContext(), strResult, 
    Toast.LENGTH_LONG); 
t.setGravity(Gravity.CENTER_VERTICAL, 0, 0); 
t.show();}}); 
} 

/** 
* Convert an int to an hex String and pad with 0's up to minLen. 
*/ 
String getPaddedHex(int nr, int minLen) { 
    String str = Integer.toHexString(nr); 
    if (str != null) { 
    while (str.length() < minLen) { 
    str = "0" + str; 
    } 
    } 
    return str; 
} 

/** 
    * Convert an int to String and pad with 0's up to minLen. 
    */ 
String getPaddedInt(int nr, int minLen) { 
    String str = Integer.toString(nr); 
    if (str != null) { 
    while (str.length() < minLen) { 
    str = "0" + str; 
    } 
    } 
    return str; 
} 

n'est pas le numéro de la GsmCellLocation correcte ou je dois modifier les résultats comme le montre l'exemple? quelle est la différence? Je sais de la documentation que le cid pourrait être -1 (inconnu) ou 0xffff la valeur maximum, le 0xffff est pour les réseaux 2g ou 3g?

Répondre

2

Ce code ne modifie pas vraiment les nombres. Il ne s'affiche que différemment en hexadécimal ou avec plus de zéros à gauche.