Я создаю приложение для переадресации вызовов с помощью Xamarin. То, что я делаю, - нажатием кнопки запускается команда, и с помощью DependencyService я вызываю специфическую для Android реализацию метода переадресации вызова.
Теперь у меня возникла проблема, когда экземпляр контекста MainActivity для метода StartActivity равен нулю. Я подозреваю, что это является причиной ошибки, которую я получаю при запуске приложения: «Цель StartActivity равна нулю (NullReferenceException)» *
но я не знаю, как это исправить. я думал, что все делаю правильно, но получаю исключение.
пока это мой код: реализация метода переадресации вызовов Android Project
[assembly: Dependency(typeof(CallDiverter_Android))]
namespace CallDiverter2.Droid
{
public class CallDiverter_Android : ICallDiverter
{
public void DivertCall(string callForwardString)
{
var context = MainActivity.Instance;
//Divert call code
try
{
//String callForwardString = "**21*1234567890#";
Intent callIntent = new Intent(Intent.ActionCall); // ACTION_CALL
Android.Net.Uri uri = Android.Net.Uri.Parse(callForwardString);
callIntent.SetData(uri);
context.StartActivity(callIntent);
//Forms.Context.StartActivity(callIntent);
}
catch (Exception)
{
throw;
}
}
public void StopCallDiverting()
{
//Stop the call diverting action
}
}
}
Экземпляр в классе MainActivity:
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
internal static MainActivity Instance { get; private set; }
protected override void OnCreate(Bundle bundle)
{
Instance = this;
TabLayoutResource = Resource.Layout.Tabbar;
ToolbarResource = Resource.Layout.Toolbar;
base.OnCreate(bundle);
global::Xamarin.Forms.Forms.Init(this, bundle);
LoadApplication(new App());
}
}