我是android开发的初学者,我尝试获取设备IMEI,但我有权限问题。
我的项目中没有
android.permission.READ_PRIVILEGED_PHONE_STATE
属性,但 getImei()
的函数 TelephonyManger.java
需要此权限。
我该如何解决这个问题?我有点失落。
尝试在 kotlin 中使用以下代码。
val telephonyManager = getSystemService(Context.TELEPHONY_SERVICE) as
TelephonyManager
if (ActivityCompat.checkSelfPermission(this@MainActivity,
Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this@MainActivity,
arrayOf(Manifest.permission.READ_PHONE_STATE), REQUEST_CODE)
return@setOnClickListener
}
IMEINumber = telephonyManager.deviceId
此链接会有帮助。 如何在android中以编程方式获取设备的IMEI/ESN?
答案是悲伤的。 我们不能!
就像 @Nitsh 所说,“
READ_PRIVILEGED_PHONE_STATE
权限仅授予使用平台密钥签名的应用程序和特权系统应用程序”。
代码无法运行 android 13。还有其他解决方案吗?