如何获得在现实设备当前的SIM卡的手机号码?
-
18-09-2019 - |
题
我必须做的一个应用程序,它显示了在细胞中使用的SIM卡的无接触。为此,我需要使用TelephonyManager
类。我可以在它的使用获得的信息?
解决方案
您可以使用的TelephonyManager
做到这一点:
TelephonyManager tm = (TelephonyManager)getSystemService(TELEPHONY_SERVICE);
String number = tm.getLine1Number();
在文档getLine1Number()
说,此方法将返回null
如果数字是“不可用”,但它并没有说当数可能不可用。
您需要给您的应用程序权限使此查询通过添加的下面,以你的清单:
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
(你不应该使用TelephonyManager.getDefault()
得到TelephonyManager
为即私人未公开的API调用,并且可在将来改变。)
其他提示
喜其实这是我同样的问题,但我没有得到anything.Now我的手机号码和他的电子邮件-ID从特定的Android真实设备(Android的手机)。现在是一个天90%的人使用什么是在Android App应用Mobile.And现在我越来越没有手机和电子邮件ID通过这个有什么应用API.Its使用起来非常简单看下面的代码这一点。
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);
}
和导入此API
import android.accounts.Account;
import android.accounts.AccountManager;
我必须做的一个应用程序,它示出了接触,其在细胞中使用的SIM卡的没有。为此,我需要使用电话管理类。我可以在它的使用获得的信息?
是, 你必须使用电话管理器;如果你没有发现接触没有。的用户; 您可以使用相同的电话管理类获得SIM卡和Android设备的维明号的SIM卡序列号...
添加权限:
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
导入:
import android.telephony.TelephonyManager;
使用下面的代码:
TelephonyManager tm = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
// get IMEI
imei = tm.getDeviceId();
// get SimSerialNumber
simSerialNumber = tm.getSimSerialNumber();
嗯,可能是暂时的黑客,但目前还没有办法让用户的手机号码。它是对伦理政策
有关例如,答复上述建议得到的所有帐户,并从那里抽取之一。它不工作了! 所有这些都是黑客仅
只有这样,才能获得用户的手机号码正经历操作。如果你有提携与移动运营商等Aitel,沃达丰等,可以当通过移动互联网网络连接得到的来自移动手持机的请求头用户的手机号码。
不知道任何制造商配合UPS获得特定的权限能帮助 - 没有探讨这个领域,但没有记录ATLEAST
有时你可以用USSD请求您的运营商retreive的PHONENUMBER。 例如,我可以通过拨打* 116#让我PHONENUMBER 这或许可以被一个应用程序内完成,我想,的如果的所述USSD性反应在某种程度上可以被捕获。 Offcourse这不是我建议一个应用程序,要分发中使用的方法,该代码可以甚至运营商之间是不同的。
正如许多表示:
String phoneNumber = TelephonyManager.getDefault().getLine1Number();
的可用性严格取决于载体和数量在SIM卡上编码的方式上。如果它是由公司,使一SIM或移动运营商自身硬编码。这将返回相同设置 - >约电话。