1
我正在通過Android應用撥打電話,並列出了一組能夠撥打電話的應用,用戶可以選擇一個撥打電話。但是我想知道的是,有沒有辦法將呼叫重定向至特定的第三方VOIP應用(如Cisco Jabber),而不是列出所有可撥打電話的應用**。我曾嘗試使用Android使用Telephony Manager從特定第三方Voip應用(如Cisco Jabber)撥打電話
註冊爲ACTION_NEW_OUT_GOING_CALLS
使用廣播接收器來中斷呼出,但我不知道如何重定向以下是廣播接收器的代碼的呼叫。
public void onReceive(Context context, Intent intent) {
Bundle bundle = intent.getExtras();
String phoneNumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);
Log.d("Test", ""+phoneNumber);
TelephonyManager telephoneManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
try {
Class<?> c = telephoneManager.getClass();
Class className = Class.forName(c.getName());
Log.d("Test", c.getSimpleName());
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
List<ResolveInfo> callAppList = context.getPackageManager().queryIntentActivities(intent, 0);
Log.d("Test", ""+callAppList.size());
if(callAppList.size() > 0)
Log.d("Test", callAppList.get(0).activityInfo.targetActivity);
}
沒有第三方應用程序不提供任何API來進行交互! –
然後你運氣不好。每方都將使用自己的協議和API來撥打電話。數據包可能在UDP/TCP中,並且提供者之間的連線格式本身差別很大。沒有任何通用接口可以將它們全部鏈接在一起,而無需向每個提供商應用正確的粘合劑。 編輯 - 我認爲jitsi最接近你想要做的。他們正在製作應用程序的Android端口,但還有一段路要走。如果該應用存在於Android上,您可以理論上要求jitsi處理您的電話。 https://jitsi.org/index.php/Documentation/FAQ#android –
不,我們可以做到這一點,在Cisco Jabber應用程序中,如果他們可以這樣做,他們可以選擇通過Ciso jabber而不是本地撥號程序進行呼叫我們可以:)我們只需要找到辦法做我的朋友 –