Browse Source

broadcastreceiver Call SMS MMS Ok

sylvrec 9 năm trước cách đây
mục cha
commit
227c76680c

+ 1 - 0
.idea/.name

@@ -0,0 +1 @@
+incallsms

+ 1 - 1
.idea/gradle.xml

@@ -5,7 +5,7 @@
       <GradleProjectSettings>
         <option name="distributionType" value="LOCAL" />
         <option name="externalProjectPath" value="$PROJECT_DIR$" />
-        <option name="gradleHome" value="C:\Program Files\Android\android-studio\gradle\gradle-2.14.1" />
+        <option name="gradleHome" value="C:\Program Files\Android\Android Studio\gradle\gradle-2.14.1" />
         <option name="modules">
           <set>
             <option value="$PROJECT_DIR$" />

+ 9 - 0
.idea/vcs.xml

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="VcsDirectoryMappings">
+    <mapping directory="$PROJECT_DIR$" vcs="Git" />
+    <mapping directory="$PROJECT_DIR$" vcs="Git" />
+    <mapping directory="$PROJECT_DIR$" vcs="Git" />
+    <mapping directory="$PROJECT_DIR$" vcs="Git" />
+  </component>
+</project>

+ 5 - 3
app/app.iml

@@ -32,12 +32,14 @@
       <sourceFolder url="file://$MODULE_DIR$/build/generated/source/aidl/debug" isTestSource="false" generated="true" />
       <sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/debug" isTestSource="false" generated="true" />
       <sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/debug" isTestSource="false" generated="true" />
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/apt/debug" isTestSource="false" generated="true" />
       <sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/debug" type="java-resource" />
       <sourceFolder url="file://$MODULE_DIR$/build/generated/res/resValues/debug" type="java-resource" />
       <sourceFolder url="file://$MODULE_DIR$/build/generated/source/r/androidTest/debug" isTestSource="true" generated="true" />
       <sourceFolder url="file://$MODULE_DIR$/build/generated/source/aidl/androidTest/debug" isTestSource="true" generated="true" />
       <sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/androidTest/debug" isTestSource="true" generated="true" />
       <sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/androidTest/debug" isTestSource="true" generated="true" />
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/apt/androidTest/debug" isTestSource="true" generated="true" />
       <sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/androidTest/debug" type="java-test-resource" />
       <sourceFolder url="file://$MODULE_DIR$/build/generated/res/resValues/androidTest/debug" type="java-test-resource" />
       <sourceFolder url="file://$MODULE_DIR$/src/debug/res" type="java-resource" />
@@ -82,7 +84,7 @@
       <sourceFolder url="file://$MODULE_DIR$/src/test/shaders" isTestSource="true" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/assets" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/blame" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/bundles" />
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/builds" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/classes" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/dependency-cache" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental" />
@@ -90,10 +92,11 @@
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental-runtime-classes" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental-safeguard" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental-verifier" />
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/instant-run-resources" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/instant-run-support" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/jniLibs" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/manifests" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/pre-dexed" />
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/reload-dex" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/res" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/restart-dex" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/rs" />
@@ -105,6 +108,5 @@
     </content>
     <orderEntry type="jdk" jdkName="Android API 23 Platform" jdkType="Android SDK" />
     <orderEntry type="sourceFolder" forTests="false" />
-    <orderEntry type="library" exported="" name="android-android-23" level="project" />
   </component>
 </module>

+ 6 - 4
app/src/main/AndroidManifest.xml

@@ -1,12 +1,13 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.sylvrec.incallsms">
-
+    <uses-permission android:name="android.permission.RECEIVE_SMS"/>
+    <uses-permission android:name="android.permission.RECEIVE_MMS"/>
     <uses-permission android:name="android.permission.READ_PHONE_STATE" />
     <uses-permission android:name="android.permission.CAMERA"/>
     <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
     <uses-feature android:name="android.hardware.camera" />
 
-    <application android:allowBackup="true" android:name=".MyApp">
+    <application android:name=".MyApp">
 
         <activity android:name=".MainActivity">
             <intent-filter>
@@ -16,11 +17,12 @@
             </intent-filter>
         </activity>
         <receiver android:name=".IncomingCallReceiver">
-            <intent-filter>
+            <intent-filter android:priority="1000">
                 <action android:name="android.intent.action.PHONE_STATE"/>
+                <action android:name="android.provider.Telephony.SMS_RECEIVED"/>
+                <action android:name="android.provider.Telephony.MMS_RECEIVED"/>
             </intent-filter>
         </receiver>
     </application>
 
-
 </manifest>

+ 15 - 9
app/src/main/java/com/sylvrec/incallsms/FlashLight.java

@@ -32,16 +32,22 @@ public class FlashLight {
         return  MyApp.getContext().getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH);
     }
 
-    public void Blink(int nb) {
-        for (int i=0; i<nb; i++) {
-            Open();
-            new Timer().schedule(new TimerTask() {
-                @Override
-                public void run() {
-                    Close();
+    public void Blink(final int nb) {
+        new Thread(new Runnable() {
+            @Override
+            public void run() {
+                for (int i=0; i<nb; i++) {
+                    Open();
+                    new Timer().schedule(new TimerTask() {
+                        @Override
+                        public void run() {
+                            Close();
+                        }
+                    }, 0, 1500);
+                    try { Thread.sleep(1500); } catch (InterruptedException e) {}
                 }
-            }, 1500, 100);
-        }
+            }
+        }).start();
     }
 
     public void Open() {

+ 16 - 0
app/src/main/java/com/sylvrec/incallsms/InCallSmsService.java

@@ -0,0 +1,16 @@
+package com.sylvrec.incallsms;
+
+import android.app.Service;
+import android.content.Intent;
+import android.os.IBinder;
+
+/**
+ * Created by sylvr on 9/19/2016.
+ */
+
+public class InCallSmsService extends Service {
+    @Override
+    public IBinder onBind(Intent intent) {
+        return null;
+    }
+}

+ 15 - 15
app/src/main/java/com/sylvrec/incallsms/IncomingCallReceiver.java

@@ -4,6 +4,7 @@ import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
 import android.os.Bundle;
+import android.os.IBinder;
 import android.provider.Telephony;
 import android.telecom.TelecomManager;
 import android.telephony.TelephonyManager;
@@ -13,23 +14,22 @@ import android.util.Log;
  * Created by sylvr on 9/15/2016.
  */
 public class IncomingCallReceiver extends BroadcastReceiver {
-    private FlashLight _light;
+
     @Override
     public void onReceive(Context context, Intent intent) {
-
-        Bundle extras = intent.getExtras();
-        if (extras != null)
-        {
-            String state = intent.getStringExtra(TelephonyManager.EXTRA_STATE);
-            Log.d("Test", state);
-            if (state.equals(TelephonyManager.EXTRA_STATE_RINGING)) {
-                _light.Blink(6);
-                Log.d("Test", "onReceive --- RING --- ");
-            }
-            if (state.equals("android.provider.Telephony.SMS_RECEIVED")) {
-                _light.Blink(1);
-                Log.d("Test", "onReceive --- SMS --- ");
-            }
+        Log.d("Test", intent.getAction());
+        String state = intent.getStringExtra(TelephonyManager.EXTRA_STATE);
+        if (state.equals(TelephonyManager.EXTRA_STATE_RINGING)) {
+            new FlashLight().Blink(6);
+            Log.d("Test", "onReceive --- RING --- ");
+        }
+        if (intent.getAction().equals("android.provider.Telephony.SMS_RECEIVED")) {
+            new FlashLight().Blink(2);
+            Log.d("Test", "onReceive --- SMS --- ");
+        }
+        if (intent.getAction().equals("android.provider.Telephony.WAP_PUSH_RECEIVED")) {
+            new FlashLight().Blink(3);
+            Log.d("Test", "onReceive --- MMS --- ");
         }
     }
 }

+ 23 - 0
app/src/main/java/com/sylvrec/incallsms/IncomingCallService.java

@@ -0,0 +1,23 @@
+package com.sylvrec.incallsms;
+
+import android.app.Service;
+import android.content.Intent;
+import android.os.IBinder;
+
+/**
+ * Created by sylvain.reclus on 23/09/2016.
+ */
+
+public class IncomingCallService extends Service {
+
+    @Override
+    public void onCreate() {
+        super.onCreate();
+        new IncomingCallReceiver();
+    }
+
+    @Override
+    public IBinder onBind(Intent intent) {
+        return null;
+    }
+}

+ 3 - 0
app/src/main/java/com/sylvrec/incallsms/MainActivity.java

@@ -11,6 +11,7 @@ import android.hardware.camera2.CameraAccessException;
 import android.hardware.camera2.CameraManager;
 import android.os.Bundle;
 import android.os.Handler;
+import android.telecom.InCallService;
 import android.widget.Toast;
 
 /**
@@ -65,6 +66,8 @@ public class MainActivity extends Activity {
                 }
             });
             alert.show();
+        } else {
+            new FlashLight().Blink(2);
         }
     }
 }

+ 1 - 1
build.gradle

@@ -5,7 +5,7 @@ buildscript {
         jcenter()
     }
     dependencies {
-        classpath 'com.android.tools.build:gradle:2.1.3'
+        classpath 'com.android.tools.build:gradle:2.2.0'
 
         // NOTE: Do not place your application dependencies here; they belong
         // in the individual module build.gradle files