Como ativar o feedback háptico na visualização do botão
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?
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