2017-02-01 10 views
0

Я создал виртуальную клавиатуру, в которой мне нужно получить уведомление о том, что конкретное приложение поддерживает контент commit 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)); 
} 

здесь, в приведенном выше коде переменных с инициалами «т» кнопки. и метод onStartInputView переопределен, в котором его проверка на поддержку api и if поддерживается, тогда кнопки будут включены.

Его нормально, кнопки будут отключены и изменят свой цвет до темноты, если его не поддерживать. Теперь, так как я использую GridView, я сделал, как показано ниже:

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

Его сотворили, а Как пользователь получит уведомление о том, что это не поддерживается .. так как GridView не меняет свой цвет или пользовательский интерфейс, так что Пользователь будет знать, что это не работает.

Тип возврата setEnabled недействителен.

Итак, КАК это возможно?

ответ

0

Google имеет пример клавиатуры с Commit контента на Github:

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

На линии 64, то есть функция, которая проверить, если Commit Содержимое поддерживается:

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

Вы можете использовать Toast, чтобы уведомить пользователя.

+0

В моем коде уже используется тот же метод. –

+0

Тост не отображается без активности. Есть ли способ показать тост внутри класса InputMethodService? –

+0

Да, я показываю тост следующим образом: Toast.makeText (CLASSNAME.this, «Hello World», Toast.LENGTH_LONG) –