Browse Source

Merge branch 'developer' of https://gitlab.com/Arisono/SkWeiChat-Baidu into feature

# Conflicts:
#	WeiChat/version.properties
Arison 7 years ago
parent
commit
8b1d42a031

+ 3 - 3
WeiChat/version.properties

@@ -1,5 +1,5 @@
-#Tue Jun 05 15:16:42 CST 2018
-debugName=475
+#Tue Jun 05 16:10:35 CST 2018
+debugName=477
 versionName=630
-debugCode=475
+debugCode=477
 versionCode=171

+ 13 - 1
app_modular/appmusic/src/main/AndroidManifest.xml

@@ -1,6 +1,9 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.usoftchina.music">
-
+    <!--打电话广播-->
+    <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/>
+    <!--监听电话状态-->
+    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
     <application
         android:allowBackup="true"
         android:label="@string/app_name"
@@ -20,5 +23,14 @@
             android:name="com.usoftchina.music.MusicService"
             android:enabled="true"
             android:exported="true" />
+
+      <!--  <receiver android:name="com.usoftchina.PhoneBroadcastReceiver">
+            <intent-filter android:priority="1000">
+                //主动打电话时,发送的广播
+                <action android:name="android.intent.action.NEW_OUTGOING_CALL"/>
+                //电话状态改变时,发送的广播 (振铃,挂断,接通)
+                <action android:name="android.intent.action.PHONE_STATE"/>
+            </intent-filter>
+        </receiver>-->
     </application>
 </manifest>

+ 16 - 0
app_modular/appmusic/src/main/java/com/usoftchina/PhoneBroadcastReceiver.java

@@ -0,0 +1,16 @@
+package com.usoftchina;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+
+/**
+ * Created by Arison on 2018/6/5.
+ */
+
+public class PhoneBroadcastReceiver extends BroadcastReceiver {
+    @Override
+    public void onReceive(Context context, Intent intent) {
+     
+    }
+}

+ 47 - 0
app_modular/appmusic/src/main/java/com/usoftchina/pay/MainMusicActivity.java

@@ -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;
+				}
+			}
+		}
+	}
 }