.NET MAUI Как реализовать CallScreeningService? ⇐ Android
-
Гость
.NET MAUI Как реализовать CallScreeningService?
Я хочу реализовать CallScreeningService, чтобы узнавать номер телефона звонящего, пока он звонит. Я следил за этой документацией CallScreeningService. В документации говорится, что приложение должно запросить роль проверки вызовов. Но когда я запрашиваю роль в MainActivity.cs, результат отменяется.
MainActivity.cs
публичный класс MainActivity: MauiAppCompatActivity { общественный статический MainActivity ActivityCurrent {get; набор; } частный статический int REQUEST_ID = 1; общественная основная активность() { ActivityCurrent = это; } защищенное переопределение void OnCreate (Bundle saveInstanceState) { base.OnCreate(saveInstanceState); RoleManager roleManager = (RoleManager)GetSystemService(RoleService); Намерение намерение = roleManager.CreateRequestRoleIntent(RoleManager.RoleCallScreening); StartActivityForResult (намерение, REQUEST_ID); } защищенное переопределение void OnActivityResult(int requestCode, Result resultCode, Intent данные) { base.OnActivityResult(requestCode, resultCode, data); если (код запроса == REQUEST_ID) { если (код_результата == Результат.ОК) { } еще { // resultCode всегда отменяется } } } } IncomingCallService.cs (Как зарегистрировать эту службу?)
публичный класс IncomingCallService: CallScreeningService { публичное переопределение void OnScreenCall(Call.Details callDetails) { var handle = callDetails.GetHandle(); } } AndroidManifest.xml
Я хочу реализовать CallScreeningService, чтобы узнавать номер телефона звонящего, пока он звонит. Я следил за этой документацией CallScreeningService. В документации говорится, что приложение должно запросить роль проверки вызовов. Но когда я запрашиваю роль в MainActivity.cs, результат отменяется.
MainActivity.cs
публичный класс MainActivity: MauiAppCompatActivity { общественный статический MainActivity ActivityCurrent {get; набор; } частный статический int REQUEST_ID = 1; общественная основная активность() { ActivityCurrent = это; } защищенное переопределение void OnCreate (Bundle saveInstanceState) { base.OnCreate(saveInstanceState); RoleManager roleManager = (RoleManager)GetSystemService(RoleService); Намерение намерение = roleManager.CreateRequestRoleIntent(RoleManager.RoleCallScreening); StartActivityForResult (намерение, REQUEST_ID); } защищенное переопределение void OnActivityResult(int requestCode, Result resultCode, Intent данные) { base.OnActivityResult(requestCode, resultCode, data); если (код запроса == REQUEST_ID) { если (код_результата == Результат.ОК) { } еще { // resultCode всегда отменяется } } } } IncomingCallService.cs (Как зарегистрировать эту службу?)
публичный класс IncomingCallService: CallScreeningService { публичное переопределение void OnScreenCall(Call.Details callDetails) { var handle = callDetails.GetHandle(); } } AndroidManifest.xml
Мобильная версия