Wie Sie programmgesteuert eine Sperre oder pin für eine app

So, jetzt versuche ich, die Entwicklung einer Android App für meine Jungen Kinder. Ich möchte mit einem pin oder Passwörter auf ausgewählte Anwendungen für eine bestimmte Menge an Zeit, um Sie daran zu hindern, die app zu öffnen. Zum Beispiel, sagen wir mal, meine Tochter will zu spielen angry birds für einige Zeit auf mein Handy, während ich am arbeiten. Wähle ich dann meine wichtigen apps wie messaging, Google Mail, etc und legen Sie eine pin oder ein Kennwort auf Sie für 30 Minuten, während Sie spielt angry birds. Nach 30 Minuten habe ich mein Handy von meiner Tochter und ich kann die app öffnen, ohne pin, weil die Frist abgelaufen ist.

Ich habe eine Tonne der Forschung über diese, aber ich habe nicht in der Lage zu finden, eine Implementierung für meinen speziellen Fall.

Wie android "app lock" - Anwendungen arbeiten?

Ich weiß, dass app-Sperre hat eine ähnliche Art von Struktur, was ich tun will. Ich habe gerade legen Sie ein Zeitlimit für die Sperre.

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

Bleibe ich Weg von der Tötung-Aktivitäten/Anwendungen mit ActivityManager etc. Ich wollt eigentlich nur einen sauberen lock-Bildschirm über ein ausgewähltes app für eine bestimmte Zeit.

Ich habe einen CountdownTimer zu count-down-timer für eine Zeit, die ich eingestellt. Wie müsste ich diesen code verändern, um zu verhindern, dass bestimmte Anwendungen für eine gewählte Menge Zeit, wenn ich hatte alle packagename?

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

BEARBEITET: http://pastebin.com/MHGFw7PK

InformationsquelleAutor Rohit Tigga | 2014-08-22
Schreibe einen Kommentar