簡體   English   中英

如何在不將活動切換到 android 中的默認呼叫應用程序的情況下撥打電話?

[英]How to make a phone call without switching activities to a default calling app in android?

我正在嘗試以不需要切換活動的方式從我的應用程序撥打電話,但我找到的每個指南都有以下代碼片段,

Intent callIntent = new Intent(Intent.ACTION_CALL);
callIntent.setData(Uri.parse("tel:XXXXXXXXX"));
startActivity(callIntent);

它將我開始呼叫的活動切換到另一個活動(在本例中為不同應用程序中的活動)。 有沒有辦法阻止這種情況發生? 我設法用一個名為“sinch”的第三方庫來做到這一點,但我想知道是否有一種本地方法可以做到這一點,或者可能是一個更好的庫?

Ps-我為自己構建的應用程序,基本上,我正在構建一個可以通過語音命令撥打電話的語音助手,因此我不能讓它切換活動。 我不打算在應用商店上發布它,我也可以毫不費力地授予危險的權限:) 我的計划是將來在單獨的硬件上運行它。

此鏈接可以幫助您,但正如 Xavier Rubio Jansana 之前所寫,Google 幾乎不接受不使用意圖撥打電話的應用程序: https://google-developer-training.github.io/android-developer-phone-sms-課程/課%201/1_c_phone_calls.html

谷歌希望任何程序員都使用意圖讓用戶查看處理電話的默認電話應用程序。

如果您的應用不需要在 Google Play 商店中提供,那么您可以直接撥打電話。

為了詳細說明我之前所說的內容,在這個堆棧溢出問題中討論了它(如果他們有幫助,可能會支持他們的答案)。 如何使用 Android 中的意圖撥打電話? .

從 memory 開始,ACTION_DIAL 將調出撥號器並預填充號碼。它不需要特殊權限,因為它需要用戶實際撥打電話。

另一方面, ACTION_CALL 將實際發起呼叫並需要特殊權限。

如果返回焦點(使您的應用程序回到前台)是一個問題,您可以在調用撥號程序后的某個時間嘗試使用預定的意圖(重新)啟動您的活動(可能使用警報管理器或類似的)。 您可以保留 state,只需稍微注意意圖中的啟動模式和/或在您的應用清單中發布的特殊“什么都不做”活動,它只會重新激活您的應用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM