Pular para o conteúdo
CrossFly é 100% open sourceSiga no GitHub
CrossFlyCrossFly
Começar

Como vibrar, emitir beep e usar a área de transferência

Propósito. Dar feedback rápido ao usuário: vibrar o aparelho, tocar um beep e copiar/colar texto na área de transferência.

APIs usadas

  • Device.vibrate(int millis) — vibra por millis ms. No iOS a duração é ignorada (não há como definir tempo nessa plataforma).
  • Device.beep() — toca o som beep.mp3 pré-carregado. Não bloqueia (agenda o play na render thread).
  • Device.clipboardCopy(String s) — copia a string para a área de transferência.
  • Device.clipboardPaste() → String — devolve a última string do clipboard, ou "" se vazio.

Nota. Todos são métodos estáticos de Device. São seguros para chamar de qualquer thread (beep() internamente agenda na render thread). clipboardPaste() nunca retorna null — retorna string vazia quando não há nada.

Exemplo completo (copiar, colar e rodar)

package com.exemplo;

import dev.crossfly.ui.*;                   // Window, Button, Label
import dev.crossfly.ui.layout.*;            // VerticalLayout
import dev.crossfly.device.*;               // Device

/** Tela principal executável. Aponte o launcher (classname) e rode: gradlew :lwjgl3:run */
public class MainWindow extends Window
{
   @Override
   public void onShow() throws Exception
   {
      super.onShow();
      setLayout(new VerticalLayout());

      Label resultado = new Label("");
      add(LAY_AUTO, resultado);

      Button acao = new Button("Vibrar, beep e copiar");
      acao.onAction(c ->
      {
         // Feedback tátil e sonoro (métodos estáticos, seguros de qualquer thread)
         Device.vibrate(50);       // 50ms (ignorado no iOS)
         Device.beep();            // não bloqueia

         // Área de transferência
         Device.clipboardCopy("Texto para copiar");
         String colado = Device.clipboardPaste();   // "" se o clipboard estiver vazio

         resultado.setText("Clipboard: " + colado);
      });
      add(LAY_AUTO, acao);
   }
}

O trecho abaixo mostra só o miolo. Para rodar, coloque-o no esqueleto MainWindow acima.

Trecho mínimo

// verificado na fonte: Device.java (vibrate linha 253, beep linha 306, clipboardCopy linha 271, clipboardPaste linha 279)
import dev.crossfly.device.*;              // Device

// Feedback tátil e sonoro
Device.vibrate(50);       // 50ms (ignorado no iOS)
Device.beep();            // não bloqueia

// Área de transferência
Device.clipboardCopy("Texto para copiar");
String colado = Device.clipboardPaste();   // "" se o clipboard estiver vazio

Aprofunde-se

Esta página foi útil?