Comment définir par programmation d'un verrou ou un code pin pour une application

Donc maintenant je suis en train de développer une Application Android pour mes jeunes enfants. Je veux définir un code pin ou un mot de passe sur les applications sélectionnées pour un montant spécifique de temps pour les prévenir de l'ouverture de l'application. Par exemple, disons que ma fille veut jouer les oiseaux en colère pour un peu de temps sur mon téléphone pendant que je suis en train de travailler. Je vous sélectionnez mes applications comme la messagerie, gmail, etc et de mettre un code pin ou un mot de passe sur elle pendant 30 minutes, alors qu'elle joue à angry birds. Après 30 minutes, je reçois mon téléphone de ma fille et je peux ouvrir l'application, sans un code pin, parce que le délai a expiré.

J'ai fait une tonne de recherches sur ce sujet, mais je n'ai pas été en mesure de trouver une application pour mon cas particulier.

Comment android "app lock" applications de travail?

Je sais que app lock dispose d'un type similaire de la structure de ce que je veux faire. Je viens de placer une limite de temps pour le verrouiller.

https://play.google.com/store/apps/details?id=com.domobile.applock&hl=fr

Je suis rester à l'écart de la mort, des activités/applications avec ActivityManager etc. Vraiment, je veux juste un nettoyage de l'écran de verrouillage sur une application sélectionnée pour un montant donné de temps.

J'ai un CountdownTimer le compte à rebours de la minuterie pour une fois, j'ai réglé. Comment modifier ce code pour bloquer certaines applications pour une quantité de temps que si j'avais tout le paquet?

    start_timer.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new AlertDialog.Builder( MainActivity.this )
.setMessage( "Are you sure you want to block the selected apps for the set amount of time?" )
.setPositiveButton( "Yeah man!", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
Log.d( "AlertDialog", "Positive" );
hourint = Integer.valueOf(number_text.getText().toString());
minuteint = Integer.valueOf(minute_text.getText().toString());
secondint = Integer.valueOf(second_text.getText().toString());
Log.i("YourActivity", "Hours: " + hourint);
Log.i("YourActivity", "Minutes: " + minuteint);
Log.i("YourActivity", "Seconds: " + secondint);
totalTimeCountInMilliseconds = ((hourint*60*60) +(minuteint*60) + (secondint)) * 1000;      //time count
timeBlinkInMilliseconds = 30*1000;
countDownTimer = new CountDownTimer(totalTimeCountInMilliseconds, 500) {
//500 means, onTick function will be called at every 500 milliseconds
@Override
public void onTick(long leftTimeInMilliseconds) {
Context context = MainActivity.this;
long seconds = leftTimeInMilliseconds / 1000;
mSeekArc.setVisibility(View.INVISIBLE);
start_timer.setVisibility(View.INVISIBLE);
block_button1.setVisibility(View.INVISIBLE);
if ( leftTimeInMilliseconds < timeBlinkInMilliseconds ) {
//textViewShowTime.setTextAppearance(getApplicationContext(), R.style.blinkText);
//change the style of the textview .. giving a red alert style
if ( blink ) {
number_text.setVisibility(View.VISIBLE);
minute_text.setVisibility(View.VISIBLE);
second_text.setVisibility(View.VISIBLE);
//if blink is true, textview will be visible
} else {
number_text.setVisibility(View.INVISIBLE);
minute_text.setVisibility(View.INVISIBLE);
second_text.setVisibility(View.INVISIBLE);
}
blink = !blink;         //toggle the value of blink
}
second_text.setText(String.format("%02d", seconds % 60));
minute_text.setText(String.format("%02d", (seconds / 60) % 60));
number_text.setText(String.format("%02d", seconds / 3600));                     //format the textview to show the easily readable format
}
@Override
public void onFinish() {
//this function will be called when the timecount is finished
//textViewShowTime.setText("Time up!");
number_text.setVisibility(View.VISIBLE);
minute_text.setVisibility(View.VISIBLE);
second_text.setVisibility(View.VISIBLE);
mSeekArc.setVisibility(View.VISIBLE);
start_timer.setVisibility(View.VISIBLE);
block_button1.setVisibility(View.VISIBLE);
}
}.start();
}
})
.setNegativeButton("Nope!", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
Log.d("AlertDialog", "Negative");
dialog.cancel();
}
})
.show();

ÉDITÉ: http://pastebin.com/MHGFw7PK

OriginalL'auteur Rohit Tigga | 2014-08-22