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.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.