Android中获取IMEI码的方法
程序员文章站
2023-10-19 13:40:47
核心代码:imei = ((telephonymanager) getsystemservice(telephony_service)).getdeviceid();1.加...
核心代码:
imei = ((telephonymanager) getsystemservice(telephony_service))
.getdeviceid();
1.加入权限
在manifest.xml文件中要添加 <uses-permission android:name="android.permission.read_phone_state" />
2.代码
package net.sunniwell.app;
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();//
}
}
imei = ((telephonymanager) getsystemservice(telephony_service))
.getdeviceid();
1.加入权限
在manifest.xml文件中要添加 <uses-permission android:name="android.permission.read_phone_state" />
2.代码
复制代码 代码如下:
package net.sunniwell.app;
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();//
}
}
推荐阅读
-
解析Android开发中多点触摸的实现方法
-
Android编程中ViewPage判断左右滑动方向的方法
-
解析在Android中为TextView增加自定义HTML标签的实现方法
-
解析android中隐藏与显示软键盘及不自动弹出键盘的实现方法
-
解析Android中如何做到Service被关闭后又自动启动的实现方法
-
解析Android获取系统cpu信息,内存,版本,电量等信息的方法详解
-
Android应用获取设备序列号的方法
-
android实现http中请求访问添加cookie的方法
-
Android编程中聊天页面背景图片、标题栏由于键盘引起问题的解决方法
-
Android中DialogFragment自定义背景与宽高的方法