我正在使用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;
}
答案 0 :(得分:0)
首先在您的清单中添加权限
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
这将返回 IMEI android.telephony.TelephonyManager.getDeviceId().