如何在拨打特定号码时初始化我的应用

时间:2017-01-15 04:00:48

标签: java android

所以我可能是你想到的最适合Android开发的新手。我掌握了编程的基本知识,基本上通过观看我制作应用程序的YouTube视频,您可以在mainActivity.java屏幕上显示您的位置。现在我希望该应用程序在我拨打号码时打开,即使我重启设备后也希望它能正常工作。我查了很多教程,很难让我理解并了解它是如何工作的。所以我需要特别的东西,例如专门将代码放在AndroidManifest.xml中和/或专门用于在主类中放置内容的地方,或者如果我必须创建一个新类。对不起,如果我要挑剔。谢谢!

1 个答案:

答案 0 :(得分:0)

Android应用使用IntentsIntent FiltersBroadcast Receivers的组合来侦听外部事件,您应该阅读更多相关信息browser support for CSS filter

特别针对您的使用案例,您需要收听一个名为NEW_OUTGOING_CALL的事件,当用户拨打新电话时,该事件由Android系统广播。

为此,您必须注册您的应用程序以收听此特定事件并创建一个BroadcastReceiver类来处理它。

您的广播接收器看起来有点像这样:

public class MyReceiver extends BroadcastReceiver {

        @Override
        public void onReceive(Context context, Intent intent) {
            String phonenumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);
            Log.d("OutgoingCallReceiver",phonenumber);
            Log.d("OutgoingCallReceiver",intent.getExtras().toString());
        }
}

你的Manifest必须声明这个接收器并注册它收听的事件:

<receiver android:name="MyReceiver" >
    <intent-filter>
        <action android:name="android.intent.action.NEW_OUTGOING_CALL" />
    </intent-filter>
</receiver>

由于handlig电话可能很危险,您还需要注册您的应用Manifest以使用新的权限:

<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />

您可以详细了解here