Firebase has registered few exceptions in my Xamarin.Android application.
There is a exception trace:
Fatal Exception: md5bcaacea39e485ed8e3d7f0e2edda77a7.MonoExceptionHelper: (RuntimeException) getImeiForSlot at Java.Interop.JniEnvironment+InstanceMethods.CallObjectMethod(Java.Interop.JniObjectReference instance, Java.Interop.JniMethodInfo method, Java.Interop.JniArgumentValue* args)0x00069 at Java.Interop.JniPeerMembers+JniInstanceMethods.InvokeVirtualObjectMethod(System.String encodedMember, Java.Interop.IJavaPeerable self, Java.Interop.JniArgumentValue* parameters)0x0002a at Android.Telephony.TelephonyManager.GetImei(System.Int32 slotIndex)0x00022 at MyApp.UI.Droid.Activity.ForgotPasswordView.GetDeviceId()0x0002d at MyApp.UI.Droid.Activity.ForgotPasswordView.GetDeviceIdentifier()0x00000 at MyApp.Core.ViewModels.LostPasswordViewModel.Ok()0x000b0 at System.Runtime.CompilerServices.AsyncMethodBuilderCore+<>c.b__6_0(System.Object state)0x00000 at Android.App.SyncContext+<>c__DisplayClass2_0.b__0()0x00000 at Java.Lang.Thread+RunnableImplementor.Run()0x00008 at Java.Lang.IRunnableInvoker.n_Run(System.IntPtr jnienv, System.IntPtr native__this)0x00009 at at (wrapper dynamic-method) Android.Runtime.DynamicMethodNameCounter.16(intptr,intptr).(unknown.cs:1) at --- End of managed Java.Lang.RuntimeException stack trace ---.(unknown.cs:1) at java.lang.SecurityException: getImeiForSlot.(unknown.cs:1) at at android.os.Parcel.createException(Parcel.java:1966).(unknown.cs:1) at at android.os.Parcel.readException(Parcel.java:1934).(unknown.cs:1) at at android.os.Parcel.readException(Parcel.java:1884).(unknown.cs:1) at at com.android.internal.telephony.ITelephony$Stub$Proxy.getImeiForSlot(ITelephony.java:5903).(unknown.cs:1) at at android.telephony.TelephonyManager.getImei(TelephonyManager.java:1830).(unknown.cs:1) at at mono.android.view.View_OnClickListenerImplementor.n_onClick(Native Method).(unknown.cs:1) at at mono.android.view.View_OnClickListenerImplementor.onClick(View_OnClickListenerImplementor.java:30).(unknown.cs:1) at at android.view.View.performClick(View.java:7352).(unknown.cs:1) at at android.widget.TextView.performClick(TextView.java:14177).(unknown.cs:1) at at android.view.View.performClickInternal(View.java:7318).(unknown.cs:1) at at android.view.View.access$3200(View.java:846).(unknown.cs:1) at at android.view.View$PerformClick.run(View.java:27801).(unknown.cs:1) at at android.os.Handler.handleCallback(Handler.java:873).(unknown.cs:1) at at android.os.Handler.dispatchMessage(Handler.java:99).(unknown.cs:1) at at android.os.Looper.loop(Looper.java:214).(unknown.cs:1) at at android.app.ActivityThread.main(ActivityThread.java:7032).(unknown.cs:1) at at java.lang.reflect.Method.invoke(Native Method).(unknown.cs:1) at at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493).(unknown.cs:1) at at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:964).(unknown.cs:1)
My GetDeviceId method:
var telephonyDeviceID = string.Empty;
var telephonySIMSerialNumber = string.Empty;
TelephonyManager telephonyManager = (TelephonyManager)Application.Context.GetSystemService(Context.TelephonyService);
if (telephonyManager != null)
{
if (Build.VERSION.SdkInt >= BuildVersionCodes.O)
{
telephonyDeviceID = telephonyManager.GetImei(0);
if (telephonyDeviceID.Length == 0)
{
telephonyDeviceID = telephonyManager.GetMeid(0);
}
}
else
{
telephonyDeviceID = telephonyManager.DeviceId;
}
if (!string.IsNullOrEmpty(telephonyManager.SimSerialNumber))
telephonySIMSerialNumber = telephonyManager.SimSerialNumber;
}
var androidID = Android.Provider.Settings.Secure.GetString(Application.Context.ContentResolver, Android.Provider.Settings.Secure.AndroidId);
var deviceUuid = new UUID(androidID.GetHashCode(), ((long)telephonyDeviceID.GetHashCode() << 32) | telephonySIMSerialNumber.GetHashCode());
var deviceID = deviceUuid.ToString();
return deviceID;
and also I have the permission READ_PHOHE_STATE
crash was registered on Samsung S10e, Nokia 1 and Huawei P20 Pro, but I can't reproduce it on my android devices.
Any possibility to figure out this issue?