SetData en intención previene sendBroadcast de trabajo?
Tengo un BroadcastReceiver registrado para escuchar la acción siguiente ..
public static final String MY_ACTION = "com.blah.intent.action.DOSOMETHING";
Y en mi código tengo
Intent intent = new Intent(MY_ACTION); sendBroadcast(intent);
Si utilizo esto la emisión se envía y se recibe bien, sin embargo si agrego un Uri usando setData antes de enviar la emisión añadiendo estas líneas.
Uri uri = Uri.parse("/sdacrd/myfile"); intent.setData(uri);
Si setData la difusión no se recibe.
¿Puede alguien explicar por qué el establecimiento de datos sobre la intención impide que las emisiones funcionen?
Android se ve no sólo en la ACCIÓN, sino también en el tipo de los datos y el esquema. Debe saber que su receptor puede recibir este tipo por llamada a addDataSchema () o addDataType () en IntentFilter. Si sólo quieres enviar String, ¿por qué no usas extras?
Estoy de acuerdo con damluar.
Desde desarrollador de Android: agrega un nuevo esquema de datos de intenciones para que coincida con. Si se incluyen esquemas en el filtro, los datos de un Intent deben ser uno de estos esquemas o un tipo de datos coincidente. Si no se incluyen esquemas, entonces un Intent solo coincidirá si no incluye datos.
Vice verso, si agrega datos en Intención, debe agregar tipo de datos o esquema en el filtro de intenciones.