2017-02-01 10 views
0

私は、特定のアプリがコミットコンテンツAPIをサポートしているかどうかを知る必要がある仮想キーボードを作成しましたか?アプリがコミットコンテンツAPIをサポートしているかどうか通知を受け取りますか?

私はキーボードの中でカスタムイメージを使用しているので、このチェックが必要です。私はInputMethodServiceを使用して、そのすでに以下のようなものをチェックするためにデモアプリケーションで行われています

ここ
@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は無効です。

これはどのように可能ですか?

答えて

0

GoogleはGithubの上のコンテンツをコミットしてキーボードの例があります。

private boolean isCommitContentSupported(@Nullable EditorInfo editorInfo, @NonNull String mimeType) 
:ライン64で

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

を、あなたはコンテンツがサポートされているコミットているかどうかを確認する機能を持っています

Toastを使用して、ユーザーに通知できます。

+0

すでに自分のコードで同じ方法を使用しています。 –

+0

トーストはアクティビティなしでは表示できません。 InputMethodServiceクラス内にトーストを表示する方法はありますか? –

+0

はい、次のようなトーストを表示しています:Toast.makeText(CLASSNAME.this、 "Hello World"、Toast.LENGTH_LONG) –

関連する問題