Vin*_*tti 61 android android-widget
我有一个应用程序,当它启动时我必须禁用Android设备上的所有按钮,我成功禁用了结束通话和其他.我需要禁用主页按钮单击.它不应该对点击产生任何动作.
任何建议高度赞赏
syn*_*nic 29
我非常确定Toddler Lock只使用BroadcastReciever并且监听Intent.ACTION_MAIN类别Intent.CATEGORY_HOME- 这就是为什么当你第一次启动它时,它会告诉你检查"将此应用程序用作默认值"框,并让你选择幼儿锁.
因此,它根本没有真正阻止Home按钮,它只是将自己设置为默认广播接收器:
Intent i = new Intent(Intent.ACTION_MAIN);
i.addCategory(Intent.CATEGORY_HOME);
Run Code Online (Sandbox Code Playgroud)
当您启动Toddler Lock时,它可能会设置一个内部标志,如果您按下主页按钮,它只会将窗口置于前面.如果未设置该标志,则可能会显式启动Launcher.
我希望这是有道理的.这只是一个理论,但我几乎100%确定它是如何完成的.
小智 18
将以下代码添加到您的活动:
@override
public void onAttachedToWindow()
{
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
super.onAttachedToWindow();
}
Run Code Online (Sandbox Code Playgroud)
编辑:
这适用于所有旧版本的android.但是不会ICS和果冻豆一起工作,会让你在app中崩溃
Jea*_*ois 11
在主活动的manifest.xml中添加:
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.HOME" />
Run Code Online (Sandbox Code Playgroud)
HOME按钮将始终(重新)启动您的活动.在Froyo工作.
我找到了解决HOME键的方法.对于您的应用程序,将清单设置为
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.HOME" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.MONKEY"/>
Run Code Online (Sandbox Code Playgroud)
现在你的应用程序是一个备用的Launcher应用程序.
使用adb,并使用包管理器禁用启动器应用程序
pm disable com.android.launcher2
Run Code Online (Sandbox Code Playgroud)
现在主页按键将保持在同一屏幕上.
| 归档时间: |
|
| 查看次数: |
70882 次 |
| 最近记录: |