所以现在我正在为我的孩子们开发一个Android应用程序.我想在特定时间内在选定的应用程序上设置一个或多个密码,以防止他们打开应用程序.例如,假设我的女儿在我工作的时候想在我的手机上播放愤怒的小鸟一段时间.我将选择我的重要应用程序,如消息,gmail等,并在她玩愤怒的小鸟时将针或密码放在上面30分钟. 30分钟后,我从女儿那里拿到手机,因为时间限制到期,我可以不用别针打开应用程序.

我已经对此做了大量的研究,但是我无法找到针对我的特定情况的实现.

我知道app锁具有类似我想做的结构.我只想给锁定一个时间限制.

我远离使用ActivityManager等杀死活动/应用程序.我真的只想在特定时间内在所选应用程序上使用干净的锁定屏幕.

我有一个CountdownTimer来计算我设定的时间的计时器.如果我拥有所有的包名,我将如何修改此代码以在选定的时间内阻止某些应用程序?

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

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐