相关疑难解决方法(0)

在Android原生来电屏幕上弹出窗口,如真正的来电Android应用

我正在开发一个广播接收器,用于Android中的来电和接听来电,我想在本地来电屏幕上弹出一个弹出窗口.

我完成了那段代码.但现在的问题是,在Android 4.1(Jelly Bean)API级别17中,当电话响铃时,它PHONE_STATE就会出现OFF HOOK,如果我正在调用一个活动,它会被调用,但它下面的代码不会被执行.我列出了代码:

我的广播接收器

package com.example.popwindowonincomingcallscreen;

import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.telephony.TelephonyManager;
import android.util.Log;

public class IncomingBroadcastReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {

        Log.d("IncomingBroadcastReceiver: onReceive: ", "flag1");

        String state = intent.getStringExtra(TelephonyManager.EXTRA_STATE);
        Log.d("IncomingBroadcastReceiver: onReceive: ", state);
        if (state.equals(TelephonyManager.EXTRA_STATE_RINGING)
                || state.equals(TelephonyManager.EXTRA_STATE_OFFHOOK)) {

            Log.d("Ringing", "Phone is ringing");

            Intent i = new Intent(context, IncomingCallActivity.class);
            i.putExtras(intent);
            i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            i.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
            Wait.oneSec();
            context.startActivity(i);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在打电话的活动:

import android.app.Activity; …
Run Code Online (Sandbox Code Playgroud)

android broadcastreceiver android-widget android-layout android-broadcast

48
推荐指数
6
解决办法
7万
查看次数