Je définit une nouvelle application et je souhaite désactiver la touche matérielle comme la maison, le dos et la touche récente de mon application. J'ai trouvé du code dans Stackoverflow mais aucun d'entre eux ne fonctionne. Est-il possible de désactiver la clé matérielle?
public class MainActivity extends AppCompatActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_main);
}
public void onAttachedToWindow() {
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG);
KeyguardManager keyguardManager = (KeyguardManager) getSystemService(KEYGUARD_SERVICE);
KeyguardManager.KeyguardLock lock = keyguardManager.newKeyguardLock(KEYGUARD_SERVICE);
lock.disableKeyguard();
}
}
3 Réponses :
Ne rien faire dans OnBackPressed () Code> @Override
protected void onPause() {
super.onPause();
ActivityManager activityManager = (ActivityManager) getApplicationContext()
.getSystemService(Context.ACTIVITY_SERVICE);
activityManager.moveTaskToFront(getTaskId(), 0);
}
qu'en est-il des autres? La maison et récente?
Dans votre MainActivity -
@Override
public void onBackPressed() {
// super.onBackPressed(); commented this line in order to disable back press
//Write your code here
Toast.makeText(getApplicationContext(), "Back press disabled!", Toast.LENGTH_SHORT).show();
}
Qu'en est-il des autres? La maison et récente?
Vous ne pouvez pas bloquer récent ni à la maison, mais vous pouvez redémarrer l'activité si l'utilisateur clique sur la maison.
Voici Exemple P>
Classe HOMEWATCHER FORT> P>
HomeWatcher mHomeWatcher = new HomeWatcher(this);
mHomeWatcher.setOnHomePressedListener(new OnHomePressedListener() {
@Override
public void onHomePressed() {
Log.d("Pressed", "Home Button Pressed");
}
@Override
public void onHomeLongPressed() {
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
Log.d("LongPressed", "Home Long Button Pressed");
}
});
mHomeWatcher.startWatch();
Dupliqué possible de Stackoverflow.com/ Questions / 26296963 / ...
Vous ne pouvez pas. Si vous souhaitez bloquer ces touches uniquement dans
Samsung périphérique code>, vous pouvez bloquer parsamsungknox code>Pourquoi? Pourquoi sortiriez-vous une fonctionnalité de base? Pourquoi essayez-vous d'emporter le contrôle de l'utilisateur final sur son propre appareil?