Je dois faire une application qui montre le numéro de contact de la carte SIM utilisée dans la cellule. Pour cela, je dois utiliser la classe TelephonyManager
. Puis-je obtenir des détails sur son utilisation?
Vous pouvez utiliser le TelephonyManager
pour ce faire:
TelephonyManager tm = (TelephonyManager)getSystemService(TELEPHONY_SERVICE);
String number = tm.getLine1Number();
La documentation pour getLine1Number()
indique que cette méthode retournera null
si le nombre est "indisponible", mais elle ne dit pas quand le nombre peut être indisponible.
Vous devrez donner à votre application la permission de faire cette requête en ajoutant ce qui suit à votre manifeste:
<uses-permission Android:name="Android.permission.READ_PHONE_STATE"/>
(Vous ne devez pas utiliser TelephonyManager.getDefault()
pour obtenir le TelephonyManager
comme c'est un appel d'API privé non documenté et peut changer à l'avenir .)
Salut En fait, c'est ma même question, mais je n'ai rien obtenu. Maintenant, j'ai obtenu le numéro de téléphone portable et son adresse e-mail d'un appareil réel Android réel (Android Mobile) .Aujourd'hui, 90% des gens en utilisant l'application App sur Android Mobile.Et maintenant, j'obtiens Mobile no et mon e-mail via cette API d'application What's.It est très simple à utiliser, voir ce code ci-dessous.
AccountManager am = AccountManager.get(this);
Account[] accounts = am.getAccounts();
for (Account ac : accounts)
{
acname = ac.name;
if (acname.startsWith("91")) {
mobile_no = acname;
}else if(acname.endsWith("@gmail.com")||acname.endsWith("@yahoo.com")||acname.endsWith("@hotmail.com")){
email = acname;
}
// Take your time to look at all available accounts
Log.i("Accounts : ", "Accounts : " + acname);
}
et importer cette API
import Android.accounts.Account;
import Android.accounts.AccountManager;
Je dois faire une application qui montre le numéro de contact de la carte SIM utilisée dans la cellule. Pour cela, je dois utiliser la classe Telephony Manager. Puis-je obtenir des détails sur son utilisation?
Oui, vous devez utiliser Telephony Manager; si vous n'avez pas trouvé le numéro de contact. de l'utilisateur; Vous pouvez obtenir le numéro de série Sim de la carte Sim et le nombre Imei de Android appareil en utilisant la même classe Telephony Manager ...
Ajouter une autorisation:
<uses-permission Android:name="Android.permission.READ_PHONE_STATE"/>
Importation:
import Android.telephony.TelephonyManager;
Utilisez le code ci-dessous:
TelephonyManager tm = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
// get IMEI
imei = tm.getDeviceId();
// get SimSerialNumber
simSerialNumber = tm.getSimSerialNumber();
Eh bien, tout pourrait être des hacks temporaires, mais il n'y a aucun moyen d'obtenir le numéro de mobile d'un utilisateur. C'est contraire à la politique éthique.
Par exemple, l'une des réponses ci-dessus suggère d'obtenir tous les comptes et de les extraire de là. Et ça ne marche plus! Ce ne sont que des hacks.
Le seul moyen d'obtenir le numéro de mobile de l'utilisateur passe par l'opérateur. Si vous avez un lien avec des opérateurs mobiles comme Aitel, Vodafone, etc., vous pouvez obtenir le numéro de mobile de l'utilisateur dans l'en-tête de la demande depuis le combiné mobile lorsqu'il est connecté via Internet sur le réseau mobile.
Je ne sais pas si des liens entre fabricants pour obtenir des autorisations spécifiques peuvent aider - pas exploré ce domaine, mais rien documenté au moins.
Parfois, vous pouvez récupérer le numéro de téléphone avec une demande USSD à votre opérateur. Par exemple, je peux obtenir mon numéro de téléphone en composant * 116 # Cela peut probablement être fait dans une application, je suppose, si la réponse USSD pourrait en quelque sorte être capturée. Bien sûr, ce n'est pas une méthode que je recommanderais d'utiliser dans une application à distribuer, le code peut même différer d'un opérateur à l'autre.