本文引自:Android 解析imei http://www.apkbus.com/android-15942-1-1.html
java 代码 :
import android.app.Activity;
import android.os.Bundle;
import android.telephony.CellLocation;
import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;
public class TelManager extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super .onCreate(savedInstanceState);
TelephonyManager tm = (TelephonyManager) this .getSystemService(TELEPHONY_SERVICE);
/*
* 电话状态:
* 1.tm.CALL_STATE_IDLE=0 无活动
* 2.tm.CALL_STATE_RINGING=1 响铃
* 3.tm.CALL_STATE_OFFHOOK=2 摘机
*/
tm.getCallState();//int
/*
* 电话方位:
*
*/
tm.getCellLocation();//CellLocation
/*
* 唯一的设备ID:
* GSM手机的 IMEI 和 CDMA手机的 MEID.
* Return null if device ID is not available.
*/
tm.getDeviceId();//String
/*
* 设备的软件版本号:
* 例如:the IMEI/SV(software version) for GSM phones.
* Return null if the software version is not available.
*/
tm.getDeviceSoftwareVersion();//String
/*
* 手机号:
* GSM手机的 MSISDN.
* Return null if it is unavailable.
*/
tm.getLine1Number();//String
/*
* 附近的电话的信息:
* 类型:List<NeighboringCellInfo>
* 需要权限:android.Manifest.permission#ACCESS_COARSE_UPDATES
*/
tm.getNeighboringCellInfo();//List<NeighboringCellInfo>
/*
* 获取ISO标准的国家码,即国际长途区号。
* 注意:仅当用户已在网络注册后有效。
* 在CDMA网络中结果也许不可靠。
*/
tm.getNetworkCountryIso();//String
/*
* MCC+MNC(mobile country code + mobile network code)
* 注意:仅当用户已在网络注册时有效。
* 在CDMA网络中结果也许不可靠。
*/
tm.getNetworkOperator();//String
/*
* 按照字母次序的current registered operator(当前已注册的用户)的名字
* 注意:仅当用户已在网络注册时有效。
* 在CDMA网络中结果也许不可靠。
*/
tm.getNetworkOperatorName();//String
/*
* 当前使用的网络类型:
* 例如: 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
*/
tm.getNetworkType();//int
/*
* 手机类型:
* 例如: PHONE_TYPE_NONE 无信号
PHONE_TYPE_GSM GSM信号
PHONE_TYPE_CDMA CDMA信号
*/
tm.getPhoneType();//int
/*
* Returns the ISO country code equivalent for the SIM provider's country code.
* 获取ISO国家码,相当于提供SIM卡的国家码。
*
*/
tm.getSimCountryIso();//String
/*
* Returns the MCC+MNC (mobile country code + mobile network code) of the provider of the SIM. 5 or 6 decimal digits.
* 获取SIM卡提供的移动国家码和移动网络码.5或6位的十进制数字.
* SIM卡的状态必须是 SIM_STATE_READY(使用getSimState()判断).
*/
tm.getSimOperator();//String
/*
* 服务商名称:
* 例如:中国移动、联通
* SIM卡的状态必须是 SIM_STATE_READY(使用getSimState()判断).
*/
tm.getSimOperatorName();//String
/*
* SIM卡的序列号:
* 需要权限:READ_PHONE_STATE
*/
tm.getSimSerialNumber();//String
/*
* 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
*/
tm.getSimState();//int
/*
* 唯一的用户ID:
* 例如:IMSI(国际移动用户识别码) for a GSM phone.
* 需要权限:READ_PHONE_STATE
*/
tm.getSubscriberId();//String
/*
* 取得和语音邮件相关的标签,即为识别符
* 需要权限:READ_PHONE_STATE
*/
tm.getVoiceMailAlphaTag();//String
/*
* 获取语音邮件号码:
* 需要权限:READ_PHONE_STATE
*/
tm.getVoiceMailNumber();//String
/*
* ICC卡是否存在
*/
tm.hasIccCard();//boolean
/*
* 是否漫游:
* (在GSM用途下)
*/
tm.isNetworkRoaming();//
}
}
在manifest.xml 权限 :
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
分享到:
相关推荐
在Android系统中,IMSI(International Mobile Subscriber Identity)和IMEI(International Mobile Equipment Identity)是两个重要的标识符,用于区分不同的移动设备和用户。本文将深入探讨如何在Android平台上...
在Android系统中,IMEI(International Mobile Equipment Identity)是设备的唯一标识符,通常用于识别和追踪移动设备。本文将详细介绍如何在没有root权限的情况下,通过USB连接使Android设备与PC进行通信,以获取...
### 在JNI中获取Android设备IMEI号的方法 #### 背景介绍 在移动应用开发过程中,有时我们需要获取Android设备的一些基本信息,例如IMEI(International Mobile Equipment Identity)号,这是一串由15位数字组成的...
你需要对固件升级流程有深入的理解,包括如何解析固件文件、提取IMEI相关部分、修改IMEI值,然后将修改后的固件重新烧录到设备中。这可能需要使用十六进制编辑器、专用的固件工具或编程语言(如C/C++)进行操作。 ...
RILD主要处理AT命令的解析和响应,这部分代码通常位于系统源码的`frameworks/base/services/core/java/com/android/internal/telephony`目录下。通过阅读源码,可以学习如何与硬件层交互,以及处理各种网络事件。 8...
Android Telephony的核心类是`TelephonyManager`,它提供了一系列方法来获取设备的电话状态信息,如SIM卡信息、网络类型、运营商信息、IMEI(国际移动设备识别码)等。开发者可以通过`getSystemService(Context....
以下将详细解析这个主题中的关键知识点。 1. **Android应用生命周期**:在Android中,每个应用都有其特定的生命周期,从创建到销毁,涉及一系列的回调方法,如onCreate(), onStart(), onResume()等。在Provision...
本文将详细解析标题和描述中提及的知识点,并提供与压缩包文件内容相关的实用信息。 首先,我们要理解“S/N码”(Serial Number,序列号)、“IMEI码”(International Mobile Equipment Identity,国际移动设备...
1. 兼容性广泛:可能支持多种品牌和型号的手机,包括Android和iOS等主流系统。 2. 易于使用:界面友好,操作流程简单,即便是非技术背景的用户也能快速上手。 3. 安全性:在写入IMEI时,应确保不会对手机的其他数据...
以下是对Android获取MAC地址源码的详细解析。 首先,我们需要了解在不同Android版本下的获取方法: 1. **Android 5.1 (API级别22)及更低版本**: 在这些早期版本中,可以通过`WifiManager`的`getMacAddress()`方法...
7. **跨平台兼容性**:尽管Samsung设备主要运行Android系统,但考虑到Delphi支持跨平台开发,可能探讨如何将IMEI相关的功能移植到其他操作系统。 8. **软件安全和隐私保护**:讨论如何在处理IMEI数据时遵循GDPR...
这段代码在Android环境中运行,通过`GetDeviceId()`方法获取IMEI号。 另一方面,IMSI号的获取相对复杂,因为出于隐私考虑,操作系统通常不允许直接访问IMSI。在某些情况下,可以利用TAPI库来间接获取。`TapiLib.dll...
7. **错误分析与修复**: 服务器端收集到Crash报告后,开发团队可以使用分析工具(如Sentry、Fabric等)或自建的分析系统来解析日志,定位问题原因,然后在代码中修复相应的bug。 8. **版本更新**: 修复后的代码需要...
客户端ID应该是唯一的,通常可以使用设备的IMEI号。接着,调用connect方法尝试连接服务器。这里需要处理连接失败的情况,通过设置回调监听器,当连接失败时,可以启动定时任务进行重试连接。 2. **断线自动重连**:...
对于联系人解析,Android系统提供ContactsContract类,可以与联系人应用同步,获取或设置联系人的详细信息。如果电话号码没有匹配的联系人,应用可能需要使用NameResolver服务来查找联系人名称。 最后,考虑到隐私...
3. **日期时间处理**:提供了日期和时间的格式化、比较、解析等操作,使得时间相关的处理变得简单易行。这对于需要展示或处理时间信息的应用来说非常有用。 4. **文件操作**:包含文件读写、文件夹管理、文件类型...
6. **设备信息获取**:获取手机硬件信息,如IMEI、MAC地址、屏幕尺寸等,方便开发过程中的设备识别或适配。 7. **数据存储**:提供SQLite数据库操作,或者SharedPreferences的简单封装,简化数据持久化工作。 8. *...
在Android应用开发中,获取手机信息是常见的需求,例如设备型号、IMEI、MAC地址、运营商信息等。这个源码资源“Android应用源码获取手机信息.zip”显然提供了实现这一功能的示例代码。让我们详细探讨一下这个话题。 ...
1. **TelephonyManager:** 用于获取有关电话服务的信息,如IMEI、IMSI和手机号码等。 2. **getSystemService():** 获取系统服务实例,此处为获取电话服务。 3. **getLine1Number():** 返回SIM卡上的主电话号码。 ...
- `READ_PHONE_STATE`:获取手机IMEI,用作设备标识。 - `ACCESS_FINE_LOCATION`:某些情况下,云之讯可能需要定位信息。 5. **初始化SDK** 在应用启动时,使用AppID和AppKey初始化云之讯SDK,代码如下: ```...