Partage
  • Partager sur Facebook
  • Partager sur Twitter

[ANDROID] BroadcastReceiver ne fonctionne pas

Sujet résolu
    20 septembre 2019 à 11:23:36

    Bonjour,

    Je suis actuellement en train d'essayer de faire fonctionner un BroadcastReceiver.

    En me basant sur la documentations et ce que j'ai pu trouver pour m'aider, j'ai actuellement ce code :

    Manifest.xml:
    
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        package="MySuperPackage">
    
        <application
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:roundIcon="@mipmap/ic_launcher_round"
            android:supportsRtl="true"
            android:theme="@style/AppTheme"
            tools:ignore="GoogleAppIndexingWarning">
            <activity android:name=".MainActivity">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
    
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
            <receiver android:name=".Broadcast"  android:exported="true">
                <intent-filter>
                    <action android:name="MySuperAction"/>
                </intent-filter>
            </receiver>
        </application>
    
    </manifest>
    MainActivity.java:
    package MySuperPackage;
    
    import androidx.appcompat.app.AppCompatActivity;
    
    import android.content.Intent;
    import android.content.IntentFilter;
    import android.os.Bundle;
    import android.util.Log;
    
    public class MainActivity extends AppCompatActivity {
        private static final String TAG = "hello";
        public Broadcast br;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            br = new Broadcast();
            IntentFilter filter = new IntentFilter("MySuperAction");
            this.registerReceiver(br, filter);
            Log.d(TAG,"Receiver Registered");
        }
    
        @Override
        public void onDestroy() {
            super.onDestroy();
            Log.d(TAG,"onDestroy");
            unregisterReceiver(br);
        }
    }
    Broadcast.java:
    package MySuperPackage;
    
    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    import android.os.Bundle;
    import android.util.Log;
    import android.widget.Toast;
    
    import static android.content.ContentValues.TAG;
    
    /*
     * Created on 20/09/2019.
     */
    public class Broadcast extends BroadcastReceiver {
    
        @Override
        public void onReceive(Context context, Intent intent) {
            String action = intent.getAction();
            Log.d(TAG,action);
            if (action.equals("MySuperAction"))
            {
                Bundle bundle = intent.getExtras();
                if (bundle != null)
                {
    
                    String type =(String) bundle.get("type.symbology_type");
                    String data = (String) bundle.get("data.decode_string");
                    Log.d(TAG, "type="+type +",    data=" + data);
                    Toast.makeText(context, "received EAN:"+data, Toast.LENGTH_SHORT).show();
                }
            }
        }
    }

    Ce code fonctionne si je déclare dans mon MainActivity le sendBroadcast(). Or le broadcast viens d'une application en arrière plan qui envoie un broadcast lorsque l'utilisateur lit un code Barre.

    Si vous avez une idée de mon erreur, je veux bien quelques conseils :D

    • Partager sur Facebook
    • Partager sur Twitter

    Il n'y a pas de personne "bête" juste leur cerveau qui visualise différemment les choses

    [ANDROID] BroadcastReceiver ne fonctionne pas

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    • Editeur
    • Markdown