如何从双卡手机中读取IMEI

时间:2014-12-01 07:13:43

标签: java c# android xamarin

我正在使用Xamarin(C#)编写Android应用程序,需要从双SIM卡手机中的两张SIM卡获取IMEI和漫游状态。我发现了一些Java代码。但我不知道如何将Java反射转换为C#(即使我使用Java-C#转换器也是如此)。这是链接:Android : Check whether the phone is dual 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;
} 

1 个答案:

答案 0 :(得分:0)

首先在您的清单中添加权限

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

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