Iniciar Broadcast Receiver de una actividad en android
Me gustaría iniciar un receptor de difusión de una actividad. Tengo un archivo de Second.java que extiende un receptor de la difusión y un archivo de Main.java del cual tengo que iniciar el receptor de la difusión. También intenté hacer todo en Main.java como sigue pero no sabía definir en archivo de manifiesto …
Main.java:
public class Main extends Activity { /** Called when the activity is first created. */ public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); String rec_data = "Nothing Received"; private BroadcastReceiver myReceiver = new BroadcastReceiver() { public void onReceive(Context context, Intent intent) { // TODO Auto-generated method stub if( intent.getStringExtra("send_data")!=null) rec_data = intent.getStringExtra("send_data"); Log.d("Received Msg : ",rec_data); } }; } protected void onResume() { IntentFilter intentFilter = new IntentFilter(); //intentFilter.addDataType(String); registerReceiver(myReceiver, intentFilter); super.onResume(); } @Override protected void onPause() { // TODO Auto-generated method stub super.onPause(); this.unregisterReceiver(this.myReceiver); } }
Si no puedo hacer todo en una clase como la anterior, ¿cómo puedo llamar al Broadcast Receiver de Main.java? ¿Puede alguien por favor, hágamelo saber dónde lo estoy haciendo mal? ¡Gracias!
- Iniciar la aplicación sin actividad, mi receptor de difusión no funciona
- Creado BroadcastReceiver que muestra el nombre de la aplicación y el número de versión en la instalación / desinstalación de cualquier aplicación?
- Detección de cambios en el tipo de red (TelephonyManager) en android
- Recepción de paquetes de instalación y desinstalación de eventos
- BroadcastReceiver: set android: proceso de forma programática
- El receptor de difusión funciona de forma diferente en diferentes versiones de Android (4.1.1 y 4.2.2)
- ¿Cómo detectar cuando el usuario activa / desactiva el estado del GPS?
- ¿Puede BroadcastReceiver registrado en AndroidManifest recibir intenciones cuando se cancela el proceso de solicitud?
- Más de un BroadcastReceiver para la misma intención con doc contradictorio y práctica
- Detectar la desconexión desde un punto de acceso WiFi
- Android BroadcastReceiver: ejecutarlo en el proceso por defecto o en uno nuevo?
- BroadcastReceiver no funciona
- Android - cómo anular el registro de un receptor creado en el manifiesto?
Use esto para enviar una difusión personalizada:
Defina un nombre de acción:
public static final String BROADCAST = "PACKAGE_NAME.android.action.broadcast";
Receptor del registro de AndroidManifest.xml:
<receiver android:name=".myReceiver" > <intent-filter > <action android:name="PACKAGE_NAME.android.action.broadcast"/> </intent-filter> </receiver>
Registrar Reciver:
IntentFilter intentFilter = new IntentFilter(BROADCAST); registerReceiver( myReceiver , intentFilter);
Envíe la transmisión de su actividad:
Intent intent = new Intent(BROADCAST); Bundle extras = new Bundle(); extras.putString("send_data", "test"); intent.putExtras(extras); sendBroadcast(intent);
SU transmisor de difusión:
private BroadcastReceiver myReceiver = new BroadcastReceiver() { public void onReceive(Context context, Intent intent) { // TODO Auto-generated method stub Bundle extras = intent.getExtras(); if (extras != null){ { rec_data = extras.getString("send_data"); Log.d("Received Msg : ",rec_data); } } };
Para obtener más información sobre Difusión personalizada, consulte Intenciones personalizadas y Difusión con receptores
Compruebe este tutorial aquí obtendrá toda la ayuda acerca de la emisión, incluyendo cómo iniciar el servicio desde la actividad o viceversa
Compruebe esta respuesta:
https://stackoverflow.com/a/5473750/928361
Creo que si no especificas nada en el IntentFilter
, debes decir la intención de la clase del receptor.
Para eso tienes que transmitir una intención para el receptor, ver el código de abajo: –
Intent intent=new Intent(); getApplicationContext().sendBroadcast(intent);
Puede definir la acción y otras propiedades de Intent y puede transmitir utilizando el contexto de la aplicación, independientemente de la acción de intención establecida aquí que tenga que definir en el archivo AndroidManifest.xml con la etiqueta del receptor.
- Android EditText / TextView cómo hacer que cada palabra comience con mayúsculas y todos los demás caracteres de las palabras sean minúsculas
- Error relativo de las dependencias circulares del diseño relativo de Android