我刚刚创建了自己的"Home"来替换股票android或者Sense.
一切都很好,我得到了我想要的一切.我唯一的问题是用我自己的发射器替换长按主页键(通常显示你发起的最后6个活动).
我用以下代码成功替换了长按MENU按钮:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
//Log.i(TAG,"Keycode: "+keyCode);
if (keyCode == KeyEvent.KEYCODE_MENU) {
// this tells the framework to start tracking for
// a long press and eventual key up. it will only
// do so if this is the first down (not a repeat).
event.startTracking();
return true;
}
(...)
Run Code Online (Sandbox Code Playgroud)
这部分适用于长按:
@Override
public boolean onKeyLongPress(int keyCode, KeyEvent event) {
//Log.i(TAG,"LONG"+keyCode);
Toast.makeText(Launcher.this,"LONG "+keyCode, Toast.LENGTH_SHORT).show();
if (keyCode == KeyEvent.KEYCODE_MENU) {
(...)
Run Code Online (Sandbox Code Playgroud)
但问题是我无法用KeyEvent.KEYCODE_HOME替换KeyEvent.KEYCODE_MENU
是什么东西锁定在代码中,以避免用户使用Home长按?
非常感谢你给我的所有信息.
我知道为用户控制HOME按钮是不好的建议.但我正在开发一个用于教育目的的android锁定应用程序.我正在浏览网站,并在禁用主页按钮时遇到此链接.
@override
public void onAttachedToWindow()
{
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
super.onAttachedToWindow();
}
Run Code Online (Sandbox Code Playgroud)
目前我正在使用上面的代码禁用我的主页按钮,但我注意到即使我在我的onCreate中有这个
getWindow.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
Run Code Online (Sandbox Code Playgroud)
我无法删除我的通知栏删除.请指教.
一旦我长按主页按钮,我正在寻找一种禁用任务管理器窗口的方法.我设法禁用其他设备键(如音量,菜单等)和正常点击主页按钮,因为我是默认启动器,但我不知道如何禁用任务管理器!甚至Toddler Lock儿童应用程序也会在长按后显示任务管理器屏幕,因此我认为这样做并不容易.我看到几个答案说我不应该禁用任务管理器,但是我希望从另一个键获得它而不是长按主页按钮.如果需要并将解决我的问题,我可以扎根.请帮忙.
我找到了使用Android 2.3.5的方法: Override home和back按钮是一个布尔值为true的情况 (我使用了hotveryspicy中的一段代码)但是,正如在此链接中所写,此解决方案不适用于Android 4.0.3你能帮我找到4.0.3的解决方案吗?
android taskmanager long-click long-press android-homebutton
是否可以在工具栏中同时显示主页图标和后退图标?1)是否可以更改后退按钮图标和主页图标的显示顺序.目前它首先显示箭头按钮,然后显示徽标(主页按钮)
2)第二个要求是在单击主页图标时清除活动堆栈,如果是后退按钮则返回上一个屏幕.
我有以下代码,它将显示一个箭头后退键和主页图标,它被设置为徽标.是否可以在这两个图标上处理点击事件:
Toolbar toolbar = (Toolbar)findByViewID(R.id.toolbar);
toolbar.setNavigationIcon(R.drwable.btn_back);
setSuppportActionBar(toolbar);
getSupportActionBar().setLogo(R.drawable.home_icon);
getSupportActionBar().setDisplayShowTitleEnabled(false);
getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
Run Code Online (Sandbox Code Playgroud)
我可以通过在onOptionsITemSelected方法中处理它来处理点击箭头图标.有没有办法处理点击徽标图标?我的想法是使用主页按钮单击以清除活动堆栈,并使用后退按钮导航回上一屏幕.
我试过了
toolbar.setNavigationOnClickListener()
Run Code Online (Sandbox Code Playgroud)
但它对后退按钮点击没有影响.
处理android.R.id.home时处理中有效
onOptionsItemSelected()
Run Code Online (Sandbox Code Playgroud) 我正在尝试删除Home按钮和Multithread按钮.我们的想法是将其从正在运行的应用程序中完全删除,如果我们可以从我们正在使用的平板电脑上的每个应用程 使用全屏不是我们想要的,因为用户不应该能够退出全屏模式,即使他想要它(它是一个自定义的商业应用程序,由于多种原因,它是所需的行为).
这是Nexus 10的结果.我们通过在编译CyanogenMod之前获取SystemUI源并更改它们来实现.
不幸的是,我们必须在没有CyanogenMod的华硕ZenPad 10中复制它.我们有一个允许我们创建系统应用程序的版本,但是将每个应用程序更改为系统应用程序并不是我们想要的.
我们在此链接中找到:http://developer.oesf.biz/em/developer/reference/eggplant/constant-values.html#android.view.View.STATUS_BAR_DISABLE_HOME
有用于禁用主页按钮和导航按钮的标志,但它们仅可用于系统应用程序.
我们已经尝试在平板电脑中编译SystemUI.apk,对其进行反编译并进行更改.问题是,或者我们有无用的smali文件或只有res /和AndroidManifest.xml文件(华硕将SystemUI.apk改为它自己的两个apks).
所以...我们在这里有点绝望啊.寻找提示/想法尝试删除按钮.更好,无需重新编译或做一些奇怪的事情.
我想在我的android活动中覆盖主页按钮.我已经尝试了一些与此相关的东西,它们适用于2.3及以下但不适用于4.0以上
@Override public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_HOME)
{
startActivity(new Intent(this, ActivityB.class));
return true;
}
return super.onKeyDown(keyCode, event); }
Run Code Online (Sandbox Code Playgroud)
和其他方式
@Override public void onAttachedToWindow() {
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
super.onAttachedToWindow();
}
Run Code Online (Sandbox Code Playgroud)
但它没有帮助我.有任何想法请分享信息
android overriding android-4.0-ice-cream-sandwich android-homebutton
从Android Studio启动模拟器,它的主页按钮不起作用.当我按下主页按钮时,在logcat中我可以看到
I/WindowManager: Not starting activity because user setup is in progress: Intent { act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10200000 (has extras) }
Run Code Online (Sandbox Code Playgroud)
当使用键盘快捷键(键盘主页按钮)时,也会发生相同的(相同的logcat).
我重启模拟器和我的机器几次,但没有帮助.
我想要实现的是通过主页按钮Long Press 杀死我的应用程序
模拟器细节:
Name: 2_7_QVGA_slider_API_23_L
CPU/ABI: ARM (armeabi-v7a)
Path: C:\Users\sh56000\.android\avd\2_7_QVGA_slider_API_23_L.avd
Target: Android 6.0 (API level 23)
Skin: 240x320
SD Card: 100M
Snapshot: no
hw.dPad: no
runtime.network.speed: full
hw.accelerometer: yes
hw.device.name: 2.7in QVGA slider
vm.heapSize: 16
skin.dynamic: yes
hw.device.manufacturer: Generic
hw.gps: yes
hw.audioInput: yes
hw.keyboard.lid: yes
hw.cpu.model: cortex-a8
tag.id: default
hw.camera.back: none
hw.mainKeys: yes
AvdId: 2_7_QVGA_slider_API_23_L
hw.camera.front: …
Run Code Online (Sandbox Code Playgroud) android emulation home-button android-homebutton android-studio-2.0
好的,这是我的问题.每当我按下HOME按钮时都没有任何反应.如果我在一个应用程序并按下它我不会像我应该被发送到主屏幕.
但是,如果屏幕被锁定并按下它,屏幕将亮起(因为按下了一个键).
所以从我可以看出,系统正在注册HOME的按键,但没有调用"android.intent.category.HOME"意图.
有没有办法监控HOME按钮,如果按下它,请从我的应用程序调用"android.intent.category.HOME"意图?我看了整个StackOverflow,但是当HOME意图没有激活时,我找不到任何工作方式来监听HOME键.
审查问题:
HOME键按下会导致系统在锁定时唤醒,因此键显然有效.
HOME按钮不会激活"android.intent.category.HOME"意图,也不会将所有打开的应用程序发送到后台.
有帮助吗?
我有偏好屏幕扩展PreferenceActivity
.对于目标OS 4.0.3,我想<
在操作栏上添加图标,所以我这样做了onCreate()
.
ActionBar actionBar = getActionBar();
actionBar.setHomeButtonEnabled(true);
actionBar.setDisplayHomeAsUpEnabled(true);
Run Code Online (Sandbox Code Playgroud)
有效.<
已添加到应用程序图标的左侧.但是当我点击进入下一级别的项目(更多细节屏幕)时,<
将不会显示.回到顶层,<
再次出现.
我从未想过嵌套偏好的机制,因为聪明的PreferenceActivity
隐藏它.现在我的问题是,为什么不PreferenceActivity
显示<
嵌套首选项?
我不想争辩说我不需要添加<
到首选项屏幕.(即使谷歌的一些应用程序添加,有些也没有,所以我认为没有可靠的规则.)
如果有一个简单的解决方案,我想解决这个问题.
android preferenceactivity android-4.0-ice-cream-sandwich android-actionbar android-homebutton
我有一个Home替换活动,您可以在其中启动许多应用程序.点击"主页"按钮后,您将返回"我的主页"替换活动.
据我所知,点击主页按钮会创建启动主屏幕的意图,然后启动该意图(我可能错了,如果我是,请纠正我!).如果是这种情况,我希望onCreate()
只要创建主屏幕就会运行该方法.另一方面,当您启动另一个活动时,主屏幕将调用onPause()
.所以返回它会让我假设onResume()
被调用.
如果有人可以在这个问题上提供一些启示,那么基本的问题是当我点击主页按钮时是否onResume()
或被onCreate()
调用,但是欢迎其他细节,我正在研究那些利用这个问题并且想要了解很多内容的东西. .
android ×10
android-4.0-ice-cream-sandwich ×2
back-button ×1
emulation ×1
home-button ×1
java ×1
listen ×1
long-click ×1
long-press ×1
navigation ×1
oncreate ×1
onresume ×1
overriding ×1
taskmanager ×1
toolbar ×1