A partir da versão 25,07 da imagem do Cloud Phone, o Cloud Phone permite usar o método de entrada local. Em alguns cenários, essa opção oferece uma experiência de digitação superior à do método de entrada integrado do Cloud Phone. Este guia aplica-se ao Cloud Phone Matrix Edition.
Comparação entre métodos de entrada
O método de entrada local é instalado no dispositivo que executa o cliente Alibaba Cloud Workspace ou usa um SDK para acessar a tela do Cloud Phone. A digitação ocorre no dispositivo local, e a entrada é processada e exibida na instância do Cloud Phone.
A tabela a seguir compara os métodos de entrada locais com o método de entrada integrado do Cloud Phone.
|
Item de comparação |
Método de entrada integrado do Cloud Phone |
Método de entrada local |
|
|
Vantagens |
|
|
|
|
Desvantagens |
|
|
|
Alternância entre métodos de entrada
Alterne entre os métodos de entrada conforme necessário. Os métodos a seguir aplicam-se ao Cloud Phone Matrix Edition.
ADB
Configuração inicial
Ao criar uma instância do Cloud Phone pela primeira vez, ative o método de entrada integrado do Cloud Phone.
adb shell settings put secure enabled_input_methods "com.google.android.inputmethod.latin/com.android.inputmethod.latin.LatinIME:com.wuying.wyime/.PseudoImeService"
Alternar para o método de entrada local
adb shell ime set com.wuying.wyime/.PseudoImeService
Alternar para o método de entrada integrado
Este exemplo usa o método de entrada Gboard pré-instalado no Cloud Phone. Substitua-o por outro método de entrada, se desejar.
adb shell ime set com.google.android.inputmethod.latin/com.android.inputmethod.latin.LatinIME
Web SDK
Obtenha o SDK mais recente (para oferecer suporte a métodos de entrada locais) e a demonstração. Para obter mais informações, consulte Web SDK.
-
Especifique o seguinte parâmetro ao estabelecer a conexão.
config.useCustomIme=true Em seguida, siga o procedimento padrão de conexão. Para detalhes, consulte a demonstração.
Android SDK
Para ativar o método de entrada local no Android SDK, registre um listener de status de conexão no ASP Engine antes que o StreamView se conecte e, em seguida, ative o método de entrada local no callback de conexão bem-sucedida.
Obtenha o SDK mais recente (para oferecer suporte a métodos de entrada locais) e a demonstração. Para obter mais informações, consulte Android SDK.
@Override
public void onCreate() {
super.onCreate();
IASPEngineListener listener = new IASPEngineListener() {
@Override
public void onConnectionSuccess(int connectionId) {
mStreamView.getASPEngineDelegate().setImeType(ASPIMEType.ASP_IME_TYPE_LOCAL);
mStreamView.shouldProactivelyShowIME(true);
}
/* Note: You must also implement other interfaces. */
}
StreamView streamView = findViewById(R.id.stream_view);
streamView.getASPEngineDelegate().registerASPEngineListener(listener);
/* Other onCreate procedures */
}
Windows SDK
Como o Windows não possui um framework unificado para aplicativos GUI, o Windows SDK fornece apenas callbacks básicos de status e interfaces upstream. Implemente a lógica de interação do método de entrada por conta própria.
O uso de um método de entrada local no Windows envolve as seguintes etapas:
Implemente o objeto AspIme para receber o callback
onImeFocusUpdate.Ao criar o AspClient, chame
setAspImepara registrar o objeto AspIme.Quando
onImeFocusUpdate(true, false)for chamado, ative o método de entrada para o framework de UI correspondente.Quando
onImeFocusUpdate(false, false)for chamado, oculte o método de entrada para o framework de UI correspondente.Quando o método de entrada confirmar caracteres, chame o método
AspClient::setImeCommitpara enviar a entrada.
Cada framework GUI usa sua própria interface para interagir com métodos de entrada. Veja a seguir exemplos comuns:
-
Framework Qt
Para ativar o método de entrada:
setAttribute(Qt::WA_InputMethodEnabled, true);Para obter o conteúdo da entrada: Use o callback
void inputMethodEvent(QInputMethodEvent *event) override;.
-
Framework WPF
Para ativar o método de entrada: Implemente
System.Windows.Interop.IKeyboardInputSink.Para obter o conteúdo da entrada: Implemente
public bool TranslateChar(ref MSG msg, ModifierKeys modifiers);.