У меня есть следующий код для телефонного звонка:
public static void CallPhoneNumber(this Context context, string phoneNumber)
{
var uri = Android.Net.Uri.Parse("tel:" + phoneNumber);
var callIntent = new Intent(Intent.ActionCall, uri);
callIntent.AddFlags(ActivityFlags.NewTask);
callIntent.AddFlags(ActivityFlags.FromBackground);
context.StartActivity(callIntent);
}
Я звоню в работающую службу переднего плана. В основном служба определяет условия (в моем случае местоположение по GPS) и звонит по телефону. Он отлично работал с моим Pixel 2XL и Android 9. Но после обновления до Android 10 я столкнулся с новой проблемой.
Прежде всего, я был вынужден добавить новое разрешение FOREGROUND_SERVICE
. Кроме того, служба переднего плана работает должным образом и совершает телефонные звонки - но только когда телефон активен, я имею в виду, что он не находится в спящем режиме, когда экран выключен.
Если экран выключен - сервис работает, я могу отслеживать активность, но не звонит.
adb logcat
показывает это предупреждение (первая строка - Info
, вторая - Warning
):
02-04 20:48:00.923 1315 7951 I ActivityTaskManager: START u0 {act=android.intent.action.CALL dat=tel:xxxxxxxxxxxx flg=0x10000004 cmp=com.android.server.telecom/.components.UserCallActivity} from uid 10174
02-04 20:48:00.924 1315 7951 W ActivityTaskManager: Background activity start [callingPackage: MyApp; callingUid: 10175; isCallingUidForeground: false; isCallingUidPersistentSystemProcess: false; realCallingUid: 10174; isRealCallingUidForeground: false; isRealCallingUidPersistentSystemProcess: false; originatingPendingIntent: null; isBgStartWhitelisted: false; intent: Intent { act=android.intent.action.CALL dat=tel:xxxxxxxxxxxx flg=0x10000004 cmp=com.android.server.telecom/.components.UserCallActivity }; callerApp: ProcessRecord{43f3a72 13957:MyApp/u0a174}]