2016-10-12 3 views
0

Я разработал пользовательскую клавиатуру, а также добавил некоторые изображения в представление, . Моя цель - отправить кликнутое изображение прямо в текущее приложение (например, приложение-сообщение или watsapp). Так, Как я могу реализовать это?Пользовательская клавиатура Android, отправляющая носитель

ответ

0

Вы не можете сделать это прямо сейчас в желаемой форме. Соединение между открытым в настоящий момент приложением и клавиатурой допускает только текст (смайлики также являются текстовыми). Что вы можете сделать, это отправить Intent к открытому в данный момент приложения и надежды, что приложение будет обращаться с этим:

public void passImage(String uri) { 
    Log.d(ImageKeyboard.class.getSimpleName(), "Image passed: " + uri); 
    Intent intent = createIntent(getApplicationContext(), getCurrentInputBinding(), uri); 
    try { 
     getApplicationContext().startActivity(intent); 
    } catch (ActivityNotFoundException e) { 
     e.printStackTrace(); 
    } 
} 

public Intent createIntent (Context context, InputBinding inputBinding, String uri) { 
    String[] packageNames = context.getPackageManager().getPackagesForUid(inputBinding.getUid()); 
    Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND); 
    sharingIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    sharingIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); 
    sharingIntent.setType("image/*"); 
    sharingIntent.setPackage(packageNames[0]); 
    sharingIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse(uri)); 
    return sharingIntent; 
} 

SMS приложение, Facebook и Gmail будут работать таким образом, однако любое другое приложение не может. Это лучшее, что вы можете сделать прямо сейчас.

Важная информация: От Android 7.1 Developer Preview можно. Информация с сайта:

Android 7.1 также добавляет эти столь востребованные функции для разработчиков к платформе:

Image поддержки клавиатура - расширяет типы контента, которые пользователи могут входить с их клавиатуры, позволяя они выражают себя через пользовательские наклейки, анимированные gif и многое другое. Приложения могут сообщать клавиатуре , какие типы контента они принимают, а клавиатура может доставлять все изображения и другой контент, который они предлагают пользователю. Для общей совместимости этот API также будет доступен в библиотеке поддержки .

+0

IntentFactory? .. что это такое –

+0

Просто вспомогательный класс. Я удалил ссылки на ясность этого примера –

Смежные вопросы