Android-Telephony应用程序,专注于来电

Bac*_*alo 5 android kernel cyanogenmod telephonymanager

我正在开发一个能够接听电话的自定义电话应用程序.使用此代码处理来电 https://code.google.com/p/auto-answer/source/browse/trunk/src/com/everysoft/autoanswer/AutoAnswerIntentService.java

不幸的是,我的应用程序失去了对来电的关注.

对于拨打电话Android-电话应用程序而言,这是一个部分解决方案 ,可以专注于拨出和拨入电话

来电怎么样?如何将注意力集中在自定义应用中?

我猜这可能涉及下载和修改源代码,因为简单地访问SDK几乎无法控制内置电话应用程序.

use*_*543 0

在manifest.xml 文件中提及以下广播接收器。

<receiver android:name="com.example.incomingcall.IncomingCallReceiver" >
        <intent-filter>
            <action android:name="android.intent.action.PHONE_STATE" />
        </intent-filter>
</receiver>
Run Code Online (Sandbox Code Playgroud)

IncomingCallReceiver.java:

public class IncomingCallReceiver extends BroadcastReceiver{

      public void onReceive(Context context, Intent intent) {
          Bundle extras = intent.getExtras();
          if (extras != null) {
          String state = extras.getString(TelephonyManager.EXTRA_STATE);
          if (state.equals(TelephonyManager.EXTRA_STATE_RINGING)) {
           Thread thread = new Thread(){
            private int sleepTime = 400;

        @Override
        public void run() {
         super.run();
        try {
                int wait_Time = 0;

                while (wait_Time < sleepTime ) {
                    sleep(100);
                    wait_Time += 100;
                }
            }catch (Exception e) {
                Toast.makeText(context,
                        "Error Occured Because:" + e.getMessage(),
                        Toast.LENGTH_SHORT).show();
            }
          context.startActivity(new Intent(context,CustomActivity.class)
                    .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
        }
    };
    thread.run();

     }
   }
 }
}
Run Code Online (Sandbox Code Playgroud)