`
- 浏览:
355018 次
- 性别:
- 来自:
北京
-
droid系统中使用TelephonyManager类来获取imei号和其他手机信息
在AndroidManifest.xml文件中增加
<!--允许读取电话状态SIM的权限-->
<uses-permissionandroid:name="android.permission.READ_PHONE_STATE" />
代码如下:
private void getSystemPhoneMessage(){
TelephonyManager telephonyManager =(TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
//手机串号:GSM手机的 IMEI 和 CDMA手机的 MEID.
String deviceID =telephonyManager.getDeviceId();
//手机号(有些手机号无法获取,是因为运营商在SIM中没有写入手机号)
String tel =telephonyManager.getLine1Number();
//获取手机SIM卡的序列号
String imei =telephonyManager.getSimSerialNumber();
//获取客户id,在gsm中是imsi号
String imsi=telephonyManager.getSubscriberId();
//电话方位
CellLocation str =telephonyManager.getCellLocation();
//运营商名称,注意:仅当用户已在网络注册时有效,在CDMA网络中结果也许不可靠
String networkoperatorName = telephonyManager.getNetworkOperatorName();
//取得和语音邮件相关的标签,即为识别符
String voiceMail =telephonyManager.getVoiceMailAlphaTag();
//获取语音邮件号码:
String voiceMailNumber =telephonyManager.getVoiceMailNumber();
//获取ISO国家码,相当于提供SIM卡的国家码。
String simCountryIso =telephonyManager.getSimCountryIso();
/**
* 电话状态:
* 1.tm.CALL_STATE_IDLE=0 无活动
*2.tm.CALL_STATE_RINGING=1 响铃
*3.tm.CALL_STATE_OFFHOOK=2 摘机
*/
int callState =telephonyManager.getCallState();
/**
* 设备的软件版本号:
* 例如:the IMEI/SV(softwareversion) for GSM phones.
* Return null if the software versionis not available.
*/
String devicesoftware =telephonyManager.getDeviceSoftwareVersion();
/**
* 获取ISO标准的国家码,即国际长途区号。
* 注意:仅当用户已在网络注册后有效。
* 在CDMA网络中结果也许不可靠。
*/
String networkCountry =telephonyManager.getNetworkCountryIso();
/**
* MCC+MNC(mobile country code +mobile network code)
* 注意:仅当用户已在网络注册时有效。
* 在CDMA网络中结果也许不可靠。
*/
String networkoperator = telephonyManager.getNetworkOperator();
/**
* 当前使用的网络类型:
* 例如:NETWORK_TYPE_UNKNOWN 网络类型未知 0
NETWORK_TYPE_GPRS GPRS网络 1
NETWORK_TYPE_EDGE EDGE网络 2
NETWORK_TYPE_UMTS UMTS网络 3
NETWORK_TYPE_HSDPA HSDPA网络 8
NETWORK_TYPE_HSUPA HSUPA网络 9
NETWORK_TYPE_HSPA HSPA网络 10
NETWORK_TYPE_CDMA CDMA网络,IS95A 或 IS95B. 4
NETWORK_TYPE_EVDO_0 EVDO网络, revision 0. 5
NETWORK_TYPE_EVDO_A EVDO网络, revision A. 6
NETWORK_TYPE_1xRTT 1xRTT网络 7
*/
int netWorkType =telephonyManager.getNetworkType();
/**
* 手机类型:
* 例如:PHONE_TYPE_NONE 无信号
PHONE_TYPE_GSM GSM信号
PHONE_TYPE_CDMA CDMA信号
*/
int phoneType = telephonyManager.getPhoneType();
/**
* 获取SIM卡提供的移动国家码和移动网络码.5或6位的十进制数字.
* SIM卡的状态必须是 SIM_STATE_READY(使用getSimState()判断).
*/
String simOperator =telephonyManager.getSimOperator();
/**
* 服务商名称:
* 例如:中国移动、联通
* SIM卡的状态必须是 SIM_STATE_READY(使用getSimState()判断).
*/
String simOperatorName =telephonyManager.getSimOperatorName();
/**
* SIM的状态信息:
* SIM_STATE_UNKNOWN 未知状态 0
SIM_STATE_ABSENT 没插卡 1
SIM_STATE_PIN_REQUIRED 锁定状态,需要用户的PIN码解锁 2
SIM_STATE_PUK_REQUIRED 锁定状态,需要用户的PUK码解锁 3
SIM_STATE_NETWORK_LOCKED 锁定状态,需要网络的PIN码解锁 4
SIM_STATE_READY 就绪状态 5
*/
int simStat =telephonyManager.getSimState();
/**
* ICC卡是否存在
*/
boolean bl=telephonyManager.hasIccCard();
/**
* 是否漫游:
* (在GSM用途下)
*/
boolean blean =telephonyManager.isNetworkRoaming();
/**
* 附近的电话的信息:
* 类型:List<NeighboringCellInfo>
* 需要权限:android.Manifest.permission#ACCESS_COARSE_UPDATES
*/
List<NeighboringCellInfo> list =telephonyManager.getNeighboringCellInfo();//List<NeighboringCellInfo>
/**
* 获取数据连接状态
*/
int dataActivty =telephonyManager.getDataActivity();
}
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
在Android平台上,我们需要使用`TelephonyManager`类来获取IMEI。首先确保在AndroidManifest.xml中添加了必要的权限: ```xml ``` 然后在C#代码中,你可以通过Xamarin.Android的绑定库访问这些API: ```csharp ...
总结,获取IMEI号码和手机版本信息是Android应用开发中常见的需求,主要通过`TelephonyManager`和`Build`类来实现。同时,对于涉及隐私的数据,如IMEI,需确保遵循相应的权限策略和用户隐私保护规定。TestIMEIpro...
Android 操作系统提供了多种方法来获取手机的 IMSI、IMEI、序列号和手机号,这些信息对于移动应用程序的开发和维护非常重要。本文将详细介绍 Android 平台获取手机 IMSI、IMEI、序列号和手机号的方法。 1. 获取 ...
总结来说,IMEI号和手机型号是识别和区分移动设备的重要标识。IMEI号主要用于设备追踪和管理,而手机型号则反映了设备的品牌和规格。在开发移动应用时,掌握如何获取和利用这些信息对于优化用户体验和服务至关重要。
在Android系统中,获取设备的IMEI(International Mobile Equipment Identity)和手机号码是常见的操作,尤其对于开发者来说,这些信息在实现特定功能时至关重要。IMEI是设备的唯一标识符,而手机号码则关联到用户的...
2. 编写获取IMEI的代码:在Service中,可以使用`TelephonyManager`类来获取IMEI: ```java TelephonyManager tm = (TelephonyManager) getSystemService(TELEPHONY_SERVICE); String imei = tm.getDeviceId(); `...
### Android获取IMEI号:详解TelephonyManager类与设备识别码 在Android开发中,获取设备的唯一识别码(如IMEI号)是一项常见的需求,主要用于设备标识、数据分析或安全验证等场景。IMEI(International Mobile ...
随着技术的发展,现代智能手机的操作系统提供了更高级别的API来处理这类信息的获取,例如Android中的`TelephonyManager.getDeviceId()`方法。因此,在实际开发过程中,开发者应根据目标平台选择最合适的方式来获取...
在Windows Phone平台上,你可以使用DeviceInformation类来获取IMEI。首先,确保你的应用有访问设备标识的权限,然后可以使用以下代码: ```csharp using Windows.Phone.Management.DeviceInfo; //... var device...
在移动应用开发过程中,有时我们需要获取Android设备的一些基本信息,例如IMEI(International Mobile Equipment Identity)号,这是一串由15位数字组成的唯一标识符,用于在全球范围内唯一识别每台移动设备。...
在 Android 平台中,获取手机的 IMSI、IMEI、序列号及手机号是非常重要的,以下将详细介绍如何获取这些信息。 1. 获取运营商 SIM 卡 IMSI 号 使用 `android.os.SystemProperties` 类可以获取运营商 SIM 卡的 IMSI ...
在Android中,可以使用TelephonyManager类来访问设备的电话相关信息。以下是如何获取IMEI的示例: ```java import android.content.Context; import android.telephony.TelephonyManager; public class DeviceInfo...
在API级别26(Android Oreo)之前,开发者可以简单地通过`TelephonyManager`类的`getDeviceId()`方法来获取IMEI码: ```java // 获取TelephonyManager实例 TelephonyManager tm = (TelephonyManager) ...
总之,通过C#获取IMEI号和IMSI号涉及到对移动设备硬件和网络通信的理解,以及对相应平台API的熟悉。在开发过程中,需要遵守隐私法规,确保用户数据的安全。`MobileCore.cs`和`TapiLib.dll`是实现这些功能的关键组件...
以上知识点是Android开发中获取手机信息的基础,开发者可以根据需要结合这些API和类来实现相应的功能。在实际应用中,还需要考虑权限管理、用户隐私保护以及性能优化等问题。例如,获取敏感信息时必须确保已获取用户...
在Android系统中,IMSI(International Mobile Subscriber Identity)和IMEI(International Mobile Equipment Identity)是两个重要的标识符,用于区分不同的移动设备和用户。本文将深入探讨如何在Android平台上...
在Android平台上,获取手机...总的来说,获取Android设备的手机号码和运营商信息需要正确配置权限,并使用`TelephonyManager`类提供的方法。在实际应用中,还需要处理可能出现的异常和空值情况,确保用户体验的流畅性。
- 使用`TelephonyManager`类:在较旧的Android版本中,可以使用`TelephonyManager`来获取SIM卡运营商信息,但无法直接获取手机号码。 ```java TelephonyManager telephonyManager = (TelephonyManager) context....