Создание неявного интента с использованием провайдера

Андрей Жулин

Я ввожу текст в EditText. С помощью класса SpanableStringBuilder, заменяю буквы картинками, находящимися в drawable. После этого с помощью неявного интента я хочу передать в приложения типа SMS/MMS WhatsApp Gmail текст так, чтобы текст появился в поле ввода сообщения в этих приложениях, а картинки вместо букв остались. Подскажите, пожалуйста, как правильно написать такой интент
Вот тут код функции, которая преобразует буквы в картинки и интент(неправильный)

private static final HashMap<String, Integer> emoticons = new HashMap();
static {
emoticons.put("ё", R.drawable.x1);
emoticons.put("й", R.drawable.q);
}

public static Spannable getSmiledText(Context context, String text) {

SpannableStringBuilder builder = new SpannableStringBuilder(text);
int index;

for (index = 0; index < builder.length(); index++) {
    for (Map.Entry<String, Integer> entry : emoticons.entrySet()) {
        int length = entry.getKey().length();
        if (index + length > builder.length())
            continue;
        if (builder.subSequence(index, index + length).toString().equals(entry.getKey())) {
            builder.setSpan(new ImageSpan(context, entry.getValue()), index, index + length,
                    Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
            index += length - 1;
            break;
        }
    }
}
return builder;

}

public void OnSendMessage (View view) {

Uri URI;
URI = Uri.parse(MediaStore.Images.Media.insertImage(this.getContentResolver(),
        BitmapFactory.decodeResource(getResources(), R.drawable.x1), null, null));

Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("image/*");
intent.putExtra(Intent.EXTRA_STREAM, URI);
String chooserTitle = getString(R.string.chooser);
Intent chosenIntent = Intent.createChooser(intent, chooserTitle);
startActivity(chosenIntent);

}

Андрей Жулин 6 месяцев назадСпасибо 0
1 чел.