繁体   English   中英

如何从双SIM卡手机读取IMEI

[英]How to read IMEI from Dual SIM Phone

我正在使用Xamarin(C#)编写一个Android应用,该应用需要从Dual SIM手机中的两个SIM卡获取IMEI和漫游状态。 我发现了一些Java代码可以做到这一点。 但是我不知道如何将Java反射转换为C#(即使我使用Java-C#转换程序也是如此)。 这是链接: Android:检查手机是否为双SIM卡

有人可以帮我吗?

这是文章中需要转换为C#的代码片段

private static String getDeviceIdBySlot(Context context, String predictedMethodName, int slotID) throws GeminiMethodNotFoundException {

    String imei = null;

    TelephonyManager telephony = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);

    try{ 

        Class<?> telephonyClass = Class.forName(telephony.getClass().getName());

        Class<?>[] parameter = new Class[1];
        parameter[0] = int.class;
        Method getSimID = telephonyClass.getMethod(predictedMethodName, parameter);

        Object[] obParameter = new Object[1];
        obParameter[0] = slotID;
        Object ob_phone = getSimID.invoke(telephony, obParameter);

        if(ob_phone != null){
            imei = ob_phone.toString();

        } 
    } catch (Exception e) {
        e.printStackTrace();
        throw new GeminiMethodNotFoundException(predictedMethodName);
    } 

    return imei;
} 

首先在清单中添加权限为

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

这将返回IMEI android.telephony.TelephonyManager.getDeviceId().

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM