相关疑难解决方法(0)

在Android中无法检测到何时应答拨出呼叫

为了检测时传出呼叫接通后,我尝试创建一个PhoneStateListener和监听TelephonyManagerCALL_STATE_RINGING,CALL_STATE_OFFHOOKCALL_STATE_IDLE,从这个问题,但它似乎没有工作,如下所述.

首先,我在清单中注册了以下权限:

<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
Run Code Online (Sandbox Code Playgroud)

然后,一个BroadcastReceiverOutCallLogger映入NEW_OUTGOING_CALL每当呼出由事件:

<receiver android:name=".listener.OutCallLogger">
    <intent-filter>
        <action android:name="android.intent.action.NEW_OUTGOING_CALL" />
    </intent-filter>
</receiver>
Run Code Online (Sandbox Code Playgroud)

接下来,我执行OutCallLogger.我设置了一个布尔值,调用noCallListenerYet以避免在调用PhoneStateListenerTelephonyManager时候附加一个新的onReceive().

public class OutCallLogger extends BroadcastReceiver {

    private static boolean noCallListenerYet = true;

    @Override
    public void onReceive(final Context context, Intent intent) {
        number = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);
        if (noCallListenerYet) {
            final TelephonyManager tm = (TelephonyManager) context.getSystemService(
                    Context.TELEPHONY_SERVICE);
            tm.listen(new PhoneStateListener() { …
Run Code Online (Sandbox Code Playgroud)

android broadcastreceiver

25
推荐指数
2
解决办法
2万
查看次数

标签 统计

android ×1

broadcastreceiver ×1