为了唯一地识别每个设备,我想使用IMEI(或CDMA设备的ESN号码).如何以编程方式访问?
如何在Android中获取我的电话号码?我用的时候:
TelephonyManager tMgr =(TelephonyManager)this.getSystemService(Context.TELEPHONY_SERVICE);
String mPhoneNumber = tMgr.getLine1Number();
并使用:
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
它返回null,为什么?
我正在尝试使用以下方法获取电话:
private String getMyPhoneNumber() {
    TelephonyManager mTelephonyMgr;
    mTelephonyMgr = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE); 
    //String imsi = mTelephonyMgr.getSubscriberId();
    String phnNo = mTelephonyMgr.getLine1Number();
    if (phnNo == null) {
        phnNo = getNoFromWatsApp();
    }
    return phnNo;
}
private String getNoFromWatsApp(){
    AccountManager am = AccountManager.get(this);
    Account[] accounts = am.getAccounts();
    String phoneNumber = "";
    for (Account ac : accounts) {
        String acname = ac.name;
        String actype = ac.type;
        // Take your time to look at all available accounts
        if(actype.equals("com.whatsapp")) {
            phoneNumber = ac.name;
        }
    }
    return phoneNumber;
}
但每次我得到一个空电话号码.我甚至试图从WhatsApp获得电话号码,但它正在返回"WhatsApp"而不是电话号码.有没有其他方法可以解决这个问题?
是否有可能以编程方式获取每个设备的语音?我试过这段代码:
TelephonyManager manager =(TelephonyManager)mAppContext.getSystemService(Context.TELEPHONY_SERVICE);
mPhoneNumber = manager.getLine1Number();
这适用于某些提供商.不幸的是,它不适用于每个提供商.所以我正在寻找一个技巧或解决方法来获得设备的电话号码.有解决方案还是不可能,因为这个号码没有存储在SIM卡上?
我有几个关于MSISDN的问题.我明白:
我需要进一步了解的是:
MSISDN号码是否在SIM卡中烧毁(存储)?如果是,是否所有提供商都确保SIM卡中有MSISDN信息?如果不是,需要澄清的是,没有编程代码可以获取MSISDN号码?
有些人建议按以下代码获取MSISDN.但如果未在设备中设置"我的电话号码",则两个代码都返回null.反过来,如果设置了它,它将返回"我的电话号码".因此,问题是:"我的电话号码"等于MSISDN?
TelephonyManager.getLine1Number();    - >适用于Android
Phone.getDevicePhoneNumber(true);  - >黑莓手机
如上面的代码,返回字符串数据是从设备本身还是从SIM卡中获取的?
以下是该场景:我有一个可通过移动浏览器访问的Web应用程序.每当用户点击我的应用页面中可通过网络浏览器访问的链接时,我都需要检测移动设备IMEI和SIMI.这是为了跟踪具有相同SIM的相同设备并提供他/她的下一级访问.无法使用loginid跟踪用户,因为我的页面中没有用户登录类型的选项.
问题是如何通过移动浏览器为特定移动设备获取唯一设备ID/SIM ID.目前我专注于基于Android的移动设备.但目标是使其成为通用设备.
大多数想法的焦点是,浏览器对手机及其应用程序的访问权限是什么?
通过浏览器链接,我们可以通过以下方式打开本地应用:
<a href="productcateory://<productid>/<customerid>">Get Details</a> 
这里productcateory将唯一标识本地应用程序并调用它.但它的单向沟通.如何从调用点返回一些响应并动态填充一些隐藏的表单字段.
通过网页脚本,我们可以在客户机上本地存储一些数据,并在以后检索它.但范围有限,无法连接到IMEI或IMSI号码.
有没有办法从网页上获取移动浏览器应用程序的钩子(记住它就像任何其他移动应用程序一样)并通过我页面中的脚本获取ID详细信息?
在这方面有没有html5提供的选项?我知道HTML5中有一个localstorage标记,可以在客户端位置存储一个id并稍后检索它.但这仅限于相同的设备和相同的移动浏览器,这也是获得imei/imsi号码的不同解决方案
如果没有要求用户在设备上安装本地应用程序或浏览器插件,请告诉我是否还有其他选项?
〜inkriti
我想获得手机号码设备.我使用了以下代码参考Alex Volovoy的 This Link
TelephonyManager tMgr = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
String mPhoneNumber = tMgr.getLine1Number();
Log.d("msg", "Phone : "+mPhoneNumber);
Logcat中的OUTPUT:
02-01 17:22:45.472: D/msg(29102): Phone : null
02-01 17:22:45.472: D/msg(29102): Phone : 
我也采取了许可,<uses-permission android:name="android.permission.READ_PHONE_STATE"/>在AndroidManifest.xml
所以我该怎么做?有错误吗?
我想获得插入设备的SIM卡的手机号码.我知道作为pr,android SDK TelephoneManger是我们可以通过getLine1Number()方法获取它的类.但它总是返回空值.
查询:
如何使用Flutter以编程方式获取运行我的android应用的设备的电话号码?
我知道我们可以使用以下语法在android studio中轻松做到这一点:
TelephonyManager tMgr = (TelephonyManager)mAppContext.getSystemService(Context.TELEPHONY_SERVICE); 
String mPhoneNumber = tMgr.getLine1Number();
但是如何使用颤动呢?
我正在研究xamarin.forms。我需要获取电话号码,如果设备是双SIM卡,那么我需要获取两个号码。我该如何实现?引用我来到这里后,有很多与此相关的问题。
我在shard项目中创建了一个接口,并在android项目中实现了该接口。android.permission.READ_PHONE_NUMBERS
在共享项目中创建接口
public interface IDeviceInfo
{
 string GetMyPhoneNumber();
}
在android项目中实现了界面
public string GetMyPhoneNumber()
{
   try
   {
      TelephonyManager mgr =     
  Android.App.Application.Context.GetSystemService(Context.TelephonyService) as TelephonyManager;
    return mgr.Line1Number;
   }
  catch (Exception ex)
  {
  throw;
  }
}
在按钮之一上单击共享项目
 private void GetPhone_Clicked(object sender, EventArgs e)
 {  
    try
    {
        var data = DependencyService.Get<IDeviceInfo>().GetMyPhoneNumber();
    }
    catch (Exception ex)
    {
          throw;
    }
}
当我使用android 5时,它返回空字符串,如果我使用android 6+,则给出权限错误,如Java.Lang.SecurityException:getLine1NumberForDisplay:用户10286或当前进程都没有android.permission.READ_PHONE_STATE,android.permission。 READ_SMS或android.permission.READ_PHONE_NUMBERS
如何在所有Android版本中解决此问题?
android ×9
phone-number ×3
blackberry ×1
c# ×1
dart ×1
flutter ×1
imei ×1
msisdn ×1
sim-card ×1
xamarin ×1