当检测到来电时,启动android应用

时间:2019-11-18 16:57:48

标签: java android android-studio broadcastreceiver

我想检测一个来电。我是通过广播接收器完成的,这很好用。但是,当我的应用程序关闭时,它会显示“应用程序已停止”(应用程序崩溃)。那么如何启动我的App来执行操作?

这是我的BroadcastReceiver:

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

public class InterceptCall extends BroadcastReceiver {

    private static final String TAG = "InterceptCall";

    private static MainActivity activity;

    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent.getStringExtra(TelephonyManager.EXTRA_STATE).equals(TelephonyManager.EXTRA_STATE_RINGING)) {
            Log.d(TAG, "onReceive: incoming call");

            activity.startCallScreen();
        }
    }

    public static void setActivity (MainActivity mainActivity) {
        activity = mainActivity;
    }
}

1 个答案:

答案 0 :(得分:1)

那么,伙计们……如果自己找到答案的话:D

只需使用onReceife的上下文并执行:

context.startActivity(new Intent(context, MainActivity.class));