android物理键

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android物理键相关的知识,希望对你有一定的参考价值。

请问一下使用基本android系统(未经深度定制)的手机应该有几个物理按键?G1 G2……G6 G7各自都有几个物理按键?都是干什么用的?

* Android常用的物理按键及其触发事件
* KEYCODE_POWER 电源键
* KEYCODE_MENU 菜单键
* KEYCODE_BACK 后退键
* KEYCODE_HOME Home键
* KEYCODE_CAMERA 相机键
* KEYCODE_SEARCH 查找键
* KEYCODE_VOLUME_UP 音量键+
* KEYCODE_VOLUME_DOWN 音量键-
* KEYCODE_VOLUME_MUTE 静音
* 方向键
* KEYCODE_DPAD_CENTER
* KEYCODE_DPAD_UP
* KEYCODE_DPAD_DOWN
* KEYCODE_DPAD_LEFT
* KEYCODE_DPAD_RIGHT
* 键盘键
* 数字0~9 字母A~Z
* KEYCODE_0 ~ KEYCODE_9
* KEYCODE_A ~ KEYCODE_Z
* 提供的回调方法有
* onKeyUp()、OnKeyDown()、onKeyLongPress()
*
* @author Administrator
*
*/
public class MainActivity extends Activity

private Button btnClose = null;

@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btnClose = (Button) findViewById(R.id.btnClose);
btnClose.setOnClickListener(new closelistener());


class closelistener implements OnClickListener

@Override
public void onClick(View v)
// TODO Auto-generated method stub
finish();




/**
* 重写onKeyDown方法可以拦截系统默认的处理
*/
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
// TODO Auto-generated method stub
if (keyCode == KeyEvent.KEYCODE_BACK)
Toast.makeText(this, "后退键", Toast.LENGTH_SHORT).show();
return true;
else if (keyCode == KeyEvent.KEYCODE_VOLUME_UP)
Toast.makeText(this, "声音+", Toast.LENGTH_SHORT).show();
return false;
else if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN)
Toast.makeText(this, "声音-", Toast.LENGTH_SHORT).show();
return false;
else if (keyCode == KeyEvent.KEYCODE_VOLUME_MUTE)
Toast.makeText(this, "静音", Toast.LENGTH_SHORT).show();
return false;
else if (keyCode == KeyEvent.KEYCODE_HOME)
Toast.makeText(this, "Home", Toast.LENGTH_SHORT).show();
return true;

return super.onKeyDown(keyCode, event);


/**
* 重写onTouchEvent方法可以处理Touch事件
*/
@Override
public boolean onTouchEvent(MotionEvent event)
// TODO Auto-generated method stub
if (event.getAction() == MotionEvent.ACTION_MOVE)
Toast.makeText(this, "ACTION_MOVE", Toast.LENGTH_SHORT).show();
else if (event.getAction() == MotionEvent.ACTION_UP)
Toast.makeText(this, "ACTION_MOVE", Toast.LENGTH_SHORT).show();
else if (event.getAction() == MotionEvent.ACTION_DOWN)
Toast.makeText(this, "ACTION_MOVE", Toast.LENGTH_SHORT).show();

return super.onTouchEvent(event);




更多的事件可以参考SDK文档的MotionEvent、KeyEvent两个类,在KeyEvent中如果处理了KeyEvent.KEYCODE_BACK事件,那就不会执行默认的操作,比如收到KeyEvent.KEYCODE_BACK事件后默认是退出,如果直接return那就不会处理退出了。
参考技术A 一般都是4个物理键。系统本身要求至少2个。

或导航键没算。)

有【 菜单,返回,搜索,小房子。】
菜单和返回好像是必须的。但是也可以做成不要物理键的。
参考技术B 一般都是4个物理键。系统本身要求至少2个。
(轨迹球或导航键没算。)

有【 菜单,返回,搜索,小房子。】
菜单和返回好像是必须的。但是也可以做成不要物理键的。本回答被提问者采纳

Android开发如何点击物理返回键返回上个界面

你从上一个界面跳转过来时,使用startActivity(intent);并且不要finish()就可以了。Android点击返回键默认就是返回上个Activity。 参考技术A 不是默认就是返回上个界面吗..

以上是关于android物理键的主要内容,如果未能解决你的问题,请参考以下文章

Android开发如何点击物理返回键返回上个界面

react native 之 Android物理返回键

vue实现app移动端Android监听物理返回键

在交互细节上,Android 与 iOS 都有哪些区别?

测试角度 对比 Android 与 iOS | app 与 web

Xamarin Android 监听音量键(下)