Xamarin C # MainAvtivity.Intent имеет значение null - PullRequest
0 голосов
/ 29 июня 2018

Я создаю приложение для переадресации вызовов с помощью 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());

    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...