android 程序获取IMEI权限有什么用

android 程序获取IMEI权限有什么用,第1张

IMEI是一个串号,每个手机出厂都有的,android 程序获取IMEI权限实际上就是我们常说的获取ROOT权限。

获取ROOT权限的作用:

1、可以安装一些需要root权限的软件应用,要知道有些软件是需要这个软件才能安装的

2、可以卸载系统自带的软件应用,比如一些运营商定制手机的预装应用,卸载了它们还能节省内存空间呢

3、可以修改系统,对自己手机系统进行一些DIY,让系统用起来更加顺手、舒服

4、此外root还会给人带来一种自由感,不再受原系统的限制,当然还有一些其他的好处,各位慢慢自己体会吧。

但是获取root权限也是有坏处的:

1、很多手机厂商以用户私自获取root权限为由拒绝保修,所以获取权限之后可能失去保修

2、对于新手用户而言,拥有这个权限之后,也就意味着手机被搞坏的可能性更大了一些,要知道root可是具有系统所有的权限,不当的 *** 作会损害系统

3、对系统的安全性造成一些破坏,一些手机病毒、木马可能会趁机而入。

获取不到是因为权限没有开放,要做一下配置:

加入权限

在manifestxml文件中要添加 <uses-permission android:name="androidpermissionREAD_PHONE_STATE" />

实现方法参考代码

package netsunniwellapp;  

import androidappActivity;  

import androidosBundle;  

import androidtelephonyCellLocation;  

import androidtelephonyPhoneStateListener;  

import androidtelephonyTelephonyManager;  

public class TelManager extends Activity {  

@Override  

protected void onCreate(Bundle savedInstanceState) {  

superonCreate(savedInstanceState);  

TelephonyManager tm = (TelephonyManager) thisgetSystemService(TELEPHONY_SERVICE);  

/

  电话状态:

  1tmCALL_STATE_IDLE=0          无活动

  2tmCALL_STATE_RINGING=1  响铃

  3tmCALL_STATE_OFFHOOK=2  摘机

 /  

tmgetCallState();//int  

/

  电话方位:

   

 /  

tmgetCellLocation();//CellLocation  

/

  唯一的设备ID:

  GSM手机的 IMEI 和 CDMA手机的 MEID  

  Return null if device ID is not available

 /  

tmgetDeviceId();//String  

/

  设备的软件版本号:

  例如:the IMEI/SV(software version) for GSM phones

  Return null if the software version is not available  

 /  

tmgetDeviceSoftwareVersion();//String  

/

  手机号:

  GSM手机的 MSISDN

  Return null if it is unavailable  

 /  

tmgetLine1Number();//String  

/

  附近的电话的信息:

  类型:List<NeighboringCellInfo>  

  需要权限:androidManifestpermission#ACCESS_COARSE_UPDATES

 /  

tmgetNeighboringCellInfo();//List<NeighboringCellInfo>  

/

  获取ISO标准的国家码,即国际长途区号。

  注意:仅当用户已在网络注册后有效。

        在CDMA网络中结果也许不可靠。

 /  

tmgetNetworkCountryIso();//String  

/

  MCC+MNC(mobile country code + mobile network code)

  注意:仅当用户已在网络注册时有效。

     在CDMA网络中结果也许不可靠。

 /  

tmgetNetworkOperator();//String  

/

  按照字母次序的current registered operator(当前已注册的用户)的名字

  注意:仅当用户已在网络注册时有效。

     在CDMA网络中结果也许不可靠。

 /  

tmgetNetworkOperatorName();//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

 /  

tmgetNetworkType();//int  

/

  手机类型:

  例如: PHONE_TYPE_NONE  无信号

   PHONE_TYPE_GSM   GSM信号

   PHONE_TYPE_CDMA  CDMA信号

 /  

tmgetPhoneType();//int  

/

  Returns the ISO country code equivalent for the SIM provider's country code

  获取ISO国家码,相当于提供SIM卡的国家码。

   

 /  

tmgetSimCountryIso();//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()判断)

 /  

tmgetSimOperator();//String  

/

  服务商名称:

  例如:中国移动、联通

  SIM卡的状态必须是 SIM_STATE_READY(使用getSimState()判断)

 /  

tmgetSimOperatorName();//String  

/

  SIM卡的序列号:

  需要权限:READ_PHONE_STATE

 /  

tmgetSimSerialNumber();//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

 /  

tmgetSimState();//int  

/

  唯一的用户ID:

  例如:IMSI(国际移动用户识别码) for a GSM phone

  需要权限:READ_PHONE_STATE

 /  

tmgetSubscriberId();//String  

/

  取得和语音邮件相关的标签,即为识别符

  需要权限:READ_PHONE_STATE

 /  

tmgetVoiceMailAlphaTag();//String  

/

  获取语音邮件号码:

  需要权限:READ_PHONE_STATE

 /  

tmgetVoiceMailNumber();//String  

/

  ICC卡是否存在

 /  

tmhasIccCard();//boolean  

/

  是否漫游:

  (在GSM用途下)

 /  

tmisNetworkRoaming();//  

   

}  

}

你好澈澈24M6,IOS系统中,获取设备唯一标识的方法有很多:

一UDID(Unique Device Identifier)

UDID的全称是Unique Device Identifier,顾名思义,它就是苹果IOS设备的唯一识别码,它由40个字符的字母和数字组成。

二UUID(Universally Unique Identifier)

UUID是Universally Unique Identifier的缩写,中文意思是通用唯一识别码

三MAC Address

四OPEN UDID

五广告标示符(IDFA-identifierForIdentifier)

六Vindor标示符 (IDFV-identifierForVendor)

Vendor是CFBundleIdentifier(反转DNS格式)的前两部分。来自同一个运营商的应用运行在同一个设备上,此属性的值是相同的;不同的运营商应用运行在同一个设备上值不同。

经测试,只要设备上有一个tencent的app,重新安装后的identifierForVendor值不变,如果tencent的app全部删除,重新安装后的identifierForVendor值改变。

但是很不幸,上面所有这些表示设备唯一号的标识,在IOS7中要么被禁止使用,要么重新安装程序后两次获取的标识符不一样。

一:总览

iOS设备标识码

1、 device ID

2、 IMEI :iOS5之后被禁止,写在主板上,不会变化。

3、 IDFA :Identifier For Advertising,iOS独有的广告标识符。但是用户可以更改,不适用于做唯一标识。系统重置、在设置里还原广告标识符,都会更改IDFA。

IDFA是一串16进制的32位串。

IDFA是苹果iOS 6开始新增的广告标识符,英文全称是Identifier for Advertising,用于给开发者跟踪广告效果用的,可以简单理解为iPhone的设备临时身份z号,是说临时身份z号,是因为IDFA允许用户更换。iOS用户可以通过(设置-通用-还原-还原位置与隐私)更换IDFA。iOS10系统提供用户禁止广告跟踪功能,用户勾选了这个功能后,应用程序讲无法取读到设备的IDFA。

IDFA是目前苹果生态广告交易的主要标识,一般跟广告商 交易一个用户后,广告商 需要给你提供用户的 IDFA作为凭证。主流的广告平台广点通、新浪粉丝通对账都是基于IDFA的

4、 MAC地址 :硬件标识符,包括WiFi mac地址和蓝牙mac地址。iOS 7 之后被禁止(同时禁止的还有OpenUDID)。

MAC地址在网络上用来区分设备的唯一性,接入网络的设备都有一个MAC地址,他们肯定都是不同的,是唯一的。一部iPhone上可能有多个MAC地址,包括WIFI的、SIM的等,但是iTouch和iPad上就有一个WIFI的,因此只需获取WIFI的MAC地址就好了,也就是en0的地址。MAC地址就如同我们身份z上的身份z号码,具有全球唯一性。但在iOS7之后,如果请求Mac地址都会返回一个固定值。

5、 UDID :用来标示设备的唯一性 。iOS 6 之后被禁止获取系统原生的UDID,但可以通过uuid,写入到钥匙串中,从而获得自定义的UDID(非系统原生),即使用户重装APP,只要每次都取这个钥匙串返回,就是不变的。

UDID是由40个字符的字母和数据组成

Unique Device Indentifier,用户不能更改,适合做唯一标识。但是苹果禁止应用获取UDID。

6、 UUID :APP重装后会变化

Android设备标识码

1、 Device ID 又叫做设备ID,可以用系统提供的TelephonyManager服务来获取,具有唯一性。其中又包括IMEI和MEID/ESN。

2、 IMEI :GSM设备返回的,并且是写在主板上的,重装APP不会改变IMEI。Android 60以上系统需要用户授予read_phone_state权限,如果用户拒绝就无法获得。

3、 MAC地址 :硬件标识符,包括WiFi mac地址和蓝牙mac地址。Android 60之后被禁止,若获取则会被判定为有害应用。

4、 MEID/ESN :CDMA设备返回的,一般不使用。

5、 UDID :用来标示设备的唯一性。获取UUID后,写入so文件生成UDID。即使APP重装,值也不变,除非root手机(普通用户做不到)

6、 UUID :APP重装之后会改变

---未整理完,待续---

IMEI:International Mobile Equipment Identity,国际移动设备身份码的缩写。是由15位数字组成的“电子串号”,它与每台手机一一对应,每个IMEI在世界上都是唯一的。

UDID:Unique Device Identifier,唯一设备标识码。

UUID:Universally Unique Identifier,通用唯一识别码。目前最广泛应用的UUID,是微软公司的全局唯一标识符GUID。其目的是让分布式系统中的所有元素,都能有唯一的辨识信息,而不需要通过中央控制端来做辨识信息的指定。

Android获取IMSI和IMEI :

IMSI是一个唯一的数字,标识了GSM和UMTS 网络里的唯一一个用户

它存储 在手机的SIM卡里,它会通过手机发送到网络上。

IMEI也是一串唯一的数字,标识了GSM 和UMTS网络里的三星 Galaxy I9100。

它通常被打印在手机里电池下面的那一面,拨  #06# 也能看到它。

代码:

这里是你在Android里读出 唯一的 IMSI-ID / IMEI-ID 的方法。

Java:

String myIMSI =

androidosSystemPropertiesget(androidtelephonyTelephonyPropertiesPROPERTY_IMSI

);

// within my emulator it returns:   310995000000000

String myIMEI =

androidosSystemPropertiesget(androidtelephonyTelephonyPropertiesPROPERTY_IMEI

);

// within my emulator it returns:   000000000000000

手机号码不是所有的都能获取。只是有一部分可以拿到。这个是由于移动运营商没有把手

机号码的数据写入到sim卡中。sim卡只有唯一的编号,供网络与设备识别那就是imsi号码,手机的信号也可以说是通过这个号码在网络中传递的,并不是手机号码。

试想,你的sim丢失后,补办一张新的会换号码吗 —不会就是因为在你的手机号码对应的 imsi号在移动运营商中被修改成新sim卡的imsi号码。

这个就像是一个变量,当移动运营商为它赋值了,它自然就会有值。不赋值自然为空。

/   获得手机的一些标志符      @param c   @return String 手机的类型 /

public String fetch_status(Context c) {

TelephonyManager tm = (TelephonyManager) c

getSystemService(ContextTELEPHONY_SERVICE);//

String str = "";

String IMSI = tmgetSubscriberId();

str += "DeviceId(IMEI) = " + tmgetDeviceId() + "/n";

str += "DeviceSoftwareVersion = " + tmgetDeviceSoftwareVersion()

+ "/n";

str += "Line1Number = " + tmgetLine1Number() + "/n";

return str;

}

1加入权限

在manifestxml文件中要添加 <uses-permission android:name="androidpermissionREAD_PHONE_STATE" />

2、Imei = ((TelephonyManager) getSystemService(TELEPHONY_SERVICE))

getDeviceId();

你取得你的设备号以后,在你的程序入口里边oncreate可以加个判断。号码不对的一律执行finish()这样你的apk即使装到别的设备里面也不能运行了。

序列号等敏感信息。

iOS14及以上版本限制所有应用程序访问设备的IMEI(国际移动设备识别码)和序列号等敏感信息,这是为了保护用户的隐私和安全,避免应用程序滥用这些信息。

iOS是苹果公司开发的移动 *** 作系统,它最初发布于2007年,并且只运行于iPhone手机上。

以上就是关于android 程序获取IMEI权限有什么用全部的内容,包括:android 程序获取IMEI权限有什么用、为什么在Android2.3.4下获取不到IMEI、ios系统怎么禁止软件获取IMEI等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9534675.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存