gpt4 book ai didi

java - 如何以编程方式在 Android 中获取 IMSI 号码

转载 作者:搜寻专家 更新时间:2023-11-01 08:43:56 25 4
gpt4 key购买 nike

我尝试了以下代码:

private String getImsi() {
TelephonyManager mTelephonyMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
return mTelephonyMgr.getSubscriberId();
}

<uses-permission android:name='android.permission.READ_PHONE_STATE' />

但它只返回 null。

有没有其他方法可以在android中用java获取IMSI?

最佳答案

String imei = android.os.SystemProperties.get(android.telephony.TelephonyProperties.PROPERTY_IMSI);

经许可

 android.permission.READ_PHONE_STATE

由于SystemProperties在Android中是一个隐藏类,所以可以通过反射访问它:

/**
* Get the value for the given key.
* @return an empty string if the key isn't found
*/
public static String get(Context context, String key) {
String ret = "";

try {
ClassLoader cl = context.getClassLoader();
@SuppressWarnings("rawtypes")
Class SystemProperties = cl.loadClass("android.os.SystemProperties");

//Parameters Types
@SuppressWarnings("rawtypes")
Class[] paramTypes= new Class[1];
paramTypes[0]= String.class;

Method get = SystemProperties.getMethod("get", paramTypes);

//Parameters
Object[] params = new Object[1];
params[0] = new String(key);

ret = (String) get.invoke(SystemProperties, params);
} catch(Exception e) {
ret = "";
//TODO : Error handling
}

return ret;
}

关于java - 如何以编程方式在 Android 中获取 IMSI 号码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30212163/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com