0

アプリから通話を制御しようとしています。

この投稿のおかげで、着信通話のブロック- Android での通話制御-質問 Stackoverflowそしてこれ. 発着信をキャンセルできました

ITelephony クラス (com.android.internal.telephony.ITelephony) を登録します。

マニフェストで受信者を定義しました。

    <receiver android:name=".PhoneCallReceiver" >
        <intent-filter android:priority="100" >
            <action android:name="android.intent.action.PHONE_STATE" />
        </intent-filter>
    </receiver>

そして、PhoneCallReceiver では、インスタンス ITelephony へのリフレクションを使用して、OnRecive メソッドをオーバーライドします。

    @Override
public void onReceive(Context context, Intent intent) {
    Log.v(TAG, "Receving....");
    TelephonyManager telephony = (TelephonyManager) context
            .getSystemService(Context.TELEPHONY_SERVICE);
    try {
        Class c = Class.forName(telephony.getClass().getName());
        Method m = c.getDeclaredMethod("getITelephony");
        m.setAccessible(true);
        telephonyService = (ITelephony) m.invoke(telephony);
        //telephonyService.silenceRinger();
        if (!(InfoAct.ismodguiaon(context))){
            telephonyService.endCall();
        } else {

        }

    } catch (Exception e) {
        e.printStackTrace();
    }

}

これは機能しますが、着信コールと発信コールを区別したいのですが、方法がわかりません。誰でも助けることができますか?

4

1 に答える 1