图像键盘:选择丰富的内容(Gif,贴纸)可重新打开活动

时间:2019-06-10 11:10:47

标签: android android-edittext android-softkeyboard gboard

我正在尝试在我的应用程序中实现图像键盘支持。我关注了official documentation。为了支持此功能,我需要重写EditText的{​​{1}}来告诉软键盘支持哪些应用程序,并提供回调以获取选定的内容Uri。

EditText:

onCreateInputConnection

其工作正常。惊喜!!!

问题 是我向活动添加意图过滤器的时候。添加了意图过滤器后,回调override fun onCreateInputConnection(editorInfo: EditorInfo): InputConnection { val ic: InputConnection = super.onCreateInputConnection(editorInfo) EditorInfoCompat.setContentMimeTypes(editorInfo, arrayOf("image/jpeg", "image/png")) val callback = InputConnectionCompat.OnCommitContentListener { inputContentInfo, flags, opts -> val lacksPermission = (flags and InputConnectionCompat.INPUT_CONTENT_GRANT_READ_URI_PERMISSION) != 0 // read and display inputContentInfo asynchronously if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N_MR1 && lacksPermission) { try { inputContentInfo.requestPermission() } catch (e: Exception) { return@OnCommitContentListener false // return false if failed } } // read and display inputContentInfo asynchronously. // call inputContentInfo.releasePermission() as needed. true // return true if succeeded } return InputConnectionCompat.createWrapper(ic, editorInfo, callback) } 不再调用,它会使用受支持的意图过滤器来打开活动。

清单:

InputConnectionCompat.OnCommitContentListener

示例在github中可用 预先感谢。

1 个答案:

答案 0 :(得分:1)

不确定原因和方式,但从

更改
EditorInfoCompat.setContentMimeTypes(editorInfo, arrayOf("image/jpeg", "image/png"))

EditorInfoCompat.setContentMimeTypes(editorInfo, arrayOf("image/*"))

解决了问题