Pergunta

Quero adicionar feedback háptico aos botões do meu aplicativo e controlá -los programaticamente para mostrar o estado do botão (ativado e desativado). O setter de feedback háptico padrão funciona apenas para uma imprensa longa. Como posso fazê -lo funcionar para cliques simples de botão.

E existe uma maneira de ter feedback háptico sobre eventos como o Touch Move?

Foi útil?

Solução

Aqui está uma resposta, embora possa não ser a melhor implementação:

import android.view.View;
import android.os.Vibrator;

public class Main extends Activity implements OnClickListener
{
    private View myView;
    private Vibrator myVib;

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        myVib = (Vibrator) this.getSystemService(VIBRATOR_SERVICE);

        //myView can be any type of view, button, etc.
        myView = (View) this.findViewById(R.id.myView);
        myView.setOnClickListener(this);
    }

    @Override
    public void onClick(View v)
    {
        myVib.vibrate(50);
        //add whatever you want after this
    }
}

Não se esqueça, você também precisa adicionar a permissão "Android.permission.vibrate" para o manifesto do programa. Você pode fazer isso adicionando o seguinte ao arquivo "AndroidManifest.xml":

<uses-permission android:name="android.permission.VIBRATE"></uses-permission>

Espero que isso ajude.

Outras dicas

Um exemplo para Mayra é que, para executar, o feedback háptico é usando este código.

View view = findViewById(...)
view.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY);

E essa linha de código pode facilitar a inclusão de sua ação OnClick. A parte boa com isso é que você não precisa definir uma permissão no AndroidManifest (não preciso disso no sdkversion "7" (2.1 ou 2.3 é 7))

Observe também, no meu código aqui, isso só estará em execução se o usuário tiver permitido um feedback háptico como global. Ver http://developer.android.com/reference/android/view/hapticfeedbackconstants.html para sempre usá -lo.

O View possui uma função PerformHaptFeedback, que deve permitir que você execute a fim de que quiser, ou seja, em um ouvinte OnClick.

getWindow().getDecorView().performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY, HapticFeedbackConstants.FLAG_IGNORE_GLOBAL_SETTING);

Uma abordagem direta que você pode usar em uma atividade.

Além das respostas anteriores, verifique se a opção "feedback de vibração" está ativada nas configurações do seu dispositivo

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top