java - 当检测到来电时,启动 Android 应用程序

标签 java android android-studio 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;
    }
}

最佳答案

所以,伙计们...如果我自己找到了答案:D

只需要使用 onReceife 的 Context 并执行以下操作:

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

关于java - 当检测到来电时,启动 Android 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58919511/

相关文章:

java - 如何为这个删除任何奇数节点及其子节点的递归函数编写基本情况?

android - Retrofit + RealmList + Gson 陷入循环直到内存不足

android - 如何为 Android Studio 3.6 或更高版本创建自定义项目模板?

android - Android 应用程序在不应该使用 CPU 的地方使用 CPU 的原因可能是什么?

java - 安卓工作室-Gradle : Execution failed for task ':Foo:dexDebug' - but why?

java - Android Studio 3.0 运行时异常

java - Ivy 无法解析依赖项 : What to check, 怎么办?

java - 将 fragment 布局纵向更改为横向

java - Lucene 是 Key/Value HashMap 的好选择吗?

java - AAR 不包括模块的资源