-1
votes

Comment désactiver le matériel HomeKey and Back KeyKey et le bouton récent de l'android de manière programmatique

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 commentaires

Dupliqué possible de Stackoverflow.com/ Questions / 26296963 / ...


Vous ne pouvez pas. Si vous souhaitez bloquer ces touches uniquement dans Samsung périphérique , vous pouvez bloquer par samsungknox


Pourquoi? Pourquoi sortiriez-vous une fonctionnalité de base? Pourquoi essayez-vous d'emporter le contrôle de l'utilisateur final sur son propre appareil?


3 Réponses :


1
votes

Ne rien faire dans OnBackPressed () Code>

@Override
protected void onPause() {
    super.onPause();

    ActivityManager activityManager = (ActivityManager) getApplicationContext()
            .getSystemService(Context.ACTIVITY_SERVICE);

    activityManager.moveTaskToFront(getTaskId(), 0);
 }


1 commentaires

qu'en est-il des autres? La maison et récente?



0
votes

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();
} 


1 commentaires

Qu'en est-il des autres? La maison et récente?



0
votes

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();


0 commentaires