我只需要为一个应用程序锁定设备。
我在我的项目中使用了一行来确定我的应用变为launcher
。因此,设备的初始屏幕是我的应用程序,HomeButton
最终总是指向应用程序。下面一行。
[IntentFilter (new [] {Intent.ActionMain}, Categories = new [] {Intent.CategoryHome, Intent.CategoryDefault})]
我能够通过更改/ system / usr / keylayout文件夹中的* .kl文件来锁定按钮以防止用户访问设备设置。但唯一的方法是使用root设备。我正在寻找不需要操作设备的方法。
BackButton
,我使用public override void OnBackPressed()
在应用程序内的设备上“锁定”。
音量按钮我可以使用下面的代码“锁定”在设备上。
public override bool OnKeyDown (Android.Views.Keycode keyCode, KeyEvent e)
{
switch (keyCode)
{
case Android.Views.Keycode.VolumeUp:
Toast.MakeText (this, "Volume Up pressed", ToastLength.Long) .Show ();
e.Dispose ();
return true;
case Android.Views.Keycode.VolumeDown:
Toast.MakeText (this, "Volume Down pressed", ToastLength.Long) .Show ();
e.Dispose ();
OnUserLeaveHint ();
return true;
}
return base.OnKeyDown (keyCode, e);
}
但是,我无法“阻止”的唯一按钮是AppSwitch
,这是访问设置的最简单方法。
我尝试使用后面的代码,但没有成功。
protected override void OnPause ()
{
base.OnPause ();
ActivityManager activityManager = (ActivityManager) GetSystemService (Activity.ActivityService);
activityManager.MoveTaskToFront (TaskId, 0);
}
任务栏我也做锁。但仅限于应用程序内。
我还阅读了AccessibilityService
,我们可以在按下的按钮上更改创建挂钩。但我没有得到太多信息,我所做的测试都没有成功。
知道怎么阻止?