всегда вызывать приложение «Телефонный звонок», когда пользователь набирает контактный номер из моего приложения (Android) в формах Xamarin? - PullRequest
0 голосов
/ 18 сентября 2018

У меня проблема, когда пользователь набирает номер из моего приложения, и если в настройках пользователя есть другое приложение в качестве приложения по умолчанию (Skype, Viber и т. Д.), То для него не открывается приложение по умолчанию для вызова устройства. устройство, но в свою очередь открывает другие приложения (Skype, Viber, ...). Что я хочу, чтобы мое приложение открывало номеронабиратель устройства по умолчанию это возможно? Пожалуйста, помогите мне! Спасибо!

1 Ответ

0 голосов
/ 20 сентября 2018

Я нашел решение проблемы: Тогда вы можете получить к нему доступ к общему коду из вашего проекта для платформы Android. Добавьте коды после:

    Intent intentCall = new Intent(Intent.ActionDial);
    intentCall.SetData(Uri.Parse($"tel:{phone}"));                
    intentCall.AddFlags(ActivityFlags.ReorderToFront);                
    PackageManager pm = Forms.Context.PackageManager;
    IList activities = pm.QueryIntentActivities(intentCall, PackageInfoFlags.MatchDefaultOnly);                
    foreach (ResolveInfo item in activities)
    {
        if (item.ActivityInfo.ToString().ToLower().Contains("com.android.phone"))
        {
            intentCall.SetPackage("com.android.phone"); 
            break;                    

        }                   
        else if (item.ActivityInfo.ToString().ToLower().Contains("call"))
        {
            intentCall.SetPackage("com.android.server.telecom"); 
            break;
        }
    }                
    Forms.Context.StartActivity(intentCall);

Или используйте код после:

    Intent intentCall = new Intent(Intent.ActionCall);
    intentCall.SetData(Uri.Parse($"tel:{phone}"));                
    intentCall.AddFlags(ActivityFlags.ReorderToFront);                
    if (Build.VERSION.SdkInt >= BuildVersionCodes.Lollipop || Build.VERSION.SdkInt >= BuildVersionCodes.LollipopMr1)
    {
        intentCall.SetPackage("com.android.server.telecom");
    }                
    else
    {
        intentCall.SetPackage("com.android.phone");
    }
    Forms.Context.StartActivity(intentCall);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...