获取有关应用是否支持提交内容 API 的通知



我已经创建了虚拟键盘,我必须在其中收到有关特定应用程序是否支持提交内容 api 的通知?

由于我在键盘内使用自定义图像,因此需要进行此检查。

我正在使用输入方法服务,并且已经在演示应用程序中完成

检查以下内容:
@Override
public void onStartInputView(EditorInfo info, boolean restarting) {
    mGifButton.setEnabled(mGifFile != null && isCommitContentSupported(info, MIME_TYPE_GIF));
    mPngButton.setEnabled(mPngFile != null && isCommitContentSupported(info, MIME_TYPE_PNG));
    mWebpButton.setEnabled(mWebpFile != null && isCommitContentSupported(info, MIME_TYPE_WEBP));
}

在这里,在上面的代码中,带有"m"首字母的变量是按钮。和方法 onStartInputView 被覆盖,其中它检查支持 API,如果受支持,则按钮将被启用。

没关系,如果不支持,按钮将禁用并将其颜色更改为小暗。现在,由于我正在使用 GridView,我已经执行以下操作:

@Override
public void onStartInputView(EditorInfo info, boolean restarting) {
    Log.e(">>>>>>Editor Info : >> ",""+info);
    grid.setEnabled(imageFile1 != null && isCommitContentSupported(info, MIME_TYPE_PNG));
}

它完成了,但是用户将收到不支持此功能的通知......因为 GridView 不会更改其颜色或 UI,以便用户将意识到这不起作用。

setEnabled的返回类型为无效。

那么,这怎么可能呢?

Google在Github上有一个带有提交内容的键盘示例:

https://github.com/googlesamples/android-CommitContentSampleIME/blob/master/app/src/main/java/com/example/android/commitcontent/ime/ImageKeyboard.java

在第 64 行,您有一个验证是否支持提交内容的函数:

private boolean isCommitContentSupported(@Nullable EditorInfo editorInfo, @NonNull String mimeType) 

您可以使用 Toast 来通知用户。

相关内容

  • 没有找到相关文章

最新更新