|
|
@@ -1,7 +1,11 @@
|
|
|
package com.usoftchina.pay;
|
|
|
|
|
|
+import android.app.Service;
|
|
|
+import android.content.BroadcastReceiver;
|
|
|
import android.content.ComponentName;
|
|
|
+import android.content.Context;
|
|
|
import android.content.Intent;
|
|
|
+import android.content.IntentFilter;
|
|
|
import android.content.ServiceConnection;
|
|
|
import android.media.MediaPlayer;
|
|
|
import android.media.MediaPlayer.OnCompletionListener;
|
|
|
@@ -10,6 +14,7 @@ import android.os.Handler;
|
|
|
import android.os.IBinder;
|
|
|
import android.support.v7.app.AppCompatActivity;
|
|
|
import android.support.v7.widget.Toolbar;
|
|
|
+import android.telephony.TelephonyManager;
|
|
|
import android.util.Log;
|
|
|
import android.view.KeyEvent;
|
|
|
import android.view.LayoutInflater;
|
|
|
@@ -45,6 +50,8 @@ public class MainMusicActivity extends AppCompatActivity {
|
|
|
private TextView tv_timeStart;
|
|
|
private TextView tv_timeTotal;
|
|
|
|
|
|
+ PhoneBroadcastReceiver phoneBroadcastReceiver;
|
|
|
+
|
|
|
private Toast mPlayerToast;
|
|
|
private Toast mLrcToast;
|
|
|
private Toolbar toolbar;
|
|
|
@@ -97,6 +104,13 @@ public class MainMusicActivity extends AppCompatActivity {
|
|
|
setContentView(R.layout.activity_main_music);
|
|
|
initViews();
|
|
|
initPlayer();
|
|
|
+
|
|
|
+ phoneBroadcastReceiver=new PhoneBroadcastReceiver();
|
|
|
+ IntentFilter filter = new IntentFilter();
|
|
|
+ filter.addAction(Intent.ACTION_NEW_OUTGOING_CALL);
|
|
|
+ filter.addAction("android.intent.action.PHONE_STATE");
|
|
|
+ registerReceiver(phoneBroadcastReceiver, filter);
|
|
|
+
|
|
|
toolbar=findViewById(R.id.commonToolBar);
|
|
|
StatusBarUtil.immersive(this, 0x00000000, 0.0f);
|
|
|
setSupportActionBar(toolbar);
|
|
|
@@ -320,4 +334,37 @@ public class MainMusicActivity extends AppCompatActivity {
|
|
|
}
|
|
|
return super.onKeyDown(keyCode, event);
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ class PhoneBroadcastReceiver extends BroadcastReceiver{
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onReceive(Context context, Intent intent) {
|
|
|
+ // 如果是拨打电话
|
|
|
+ if (intent.getAction().equals(Intent.ACTION_NEW_OUTGOING_CALL)) {
|
|
|
+ musicService.playOrPause();
|
|
|
+ //拨打电话会优先,收到此广播. 再收到 android.intent.action.PHONE_STATE 的 TelephonyManager.CALL_STATE_OFFHOOK 状态广播;();
|
|
|
+ } else {
|
|
|
+
|
|
|
+ // 如果是来电
|
|
|
+ TelephonyManager tManager = (TelephonyManager) context
|
|
|
+ .getSystemService(Service.TELEPHONY_SERVICE);
|
|
|
+ //电话的状态
|
|
|
+ switch (tManager.getCallState()) {
|
|
|
+ case TelephonyManager.CALL_STATE_RINGING:
|
|
|
+ //等待接听状态
|
|
|
+ musicService.playOrPause();
|
|
|
+ break;
|
|
|
+ case TelephonyManager.CALL_STATE_OFFHOOK:
|
|
|
+ //接听状态
|
|
|
+
|
|
|
+ break;
|
|
|
+ case TelephonyManager.CALL_STATE_IDLE:
|
|
|
+ //挂断状态
|
|
|
+ musicService.playOrPause();
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|