1

Android アプリケーションから電話をかけていますが、電話をかけることができる一連のアプリがリストされており、ユーザーは電話をかけるアプリを選択できます。しかし、私が知りたいのは、電話をかけることができるすべてのアプリ**をリストする代わりに、特定のサードパーティの 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);

}
4

1 に答える 1

1

私はいくつかの解決策を考えることができます。

  1. サードパーティはAPIを提供していますか?あなたはそれと統合することができます(skypeAPIのように)

  2. サードパーティソフトウェアに呼び出しを受け入れることができるアクティビティがある場合は、適切なインテントを提供することにより、コントロールをそのアクティビティに転送できます。

テレフォニーマネージャーがVOIP通話に関するデータをキャプチャできることを知りません。その責任は電話自体に固有のものだと思います。私は以前にテレフォニーマネージャーと仕事をしたことがないので、わかりません。

于 2012-10-08T06:24:52.367 に答える