android 中的一些小case
最近在看android的source code,中间碰到了一些基础的小case,觉得还是可以的,就总结下来方便以后倒腾。
1、string 中几个可能用到的函数---------见SystemKeyServices.java
private String stringToAscii(String value) {StringBuffer sbu = new StringBuffer();char[] chars = value.toCharArray();for (int i = 0; i < chars.length; i++) {sbu.append(Integer.toHexString((int) chars[i]));}return sbu.toString();}private String hexStringToByte(String hex) {int len = (hex.length() / 2);byte[] result = new byte[len];char[] achar = hex.toCharArray();for (int i = 0; i < len; i++) {int pos = i * 2;result[i] = (byte) (toByte(achar[pos]) << 4 | toByte(achar[pos + 1]));}return new String(result);}private byte toByte(char c) {byte b = (byte) "0123456789abcdef".indexOf(c);return b;}private String getRealString(String s) {char[] cArray = s.toCharArray();for (int j = 0; j < cArray.length; j = j + 2) {if (cArray[j] == '0' && cArray[j + 1] == '0') {return s.substring(0, j);}}return s;}
2、模拟发按键
private void sendKeyEvent(int keyCode) {int eventCode = keyCode;long now = SystemClock.uptimeMillis();try {KeyEvent down = new KeyEvent(now, now, KeyEvent.ACTION_DOWN, eventCode, 0);KeyEvent up = new KeyEvent(now, now, KeyEvent.ACTION_UP, eventCode, 0);(IInputManager.Stub.asInterface(ServiceManager.getService("input"))).injectInputEvent(down, 0);(IInputManager.Stub.asInterface(ServiceManager.getService("input"))).injectInputEvent(up, 0); } catch (RemoteException e) { Log.i(TAG, "DeadOjbectException");}
}
3、倒计时 -------- CountDownTimer.java
private void updateTimerButton(long time) { //更新button 按钮上的秒数int count = (int)time/1000;Button deny = getButton(DialogInterface.BUTTON_NEGATIVE);//直接setButton 不行deny.setText(mContext.getString(R.string.appops_note_dialog_deny) + "( " + count + " )");}private void finishTimer() {myHandle.sendMessage(myHandle.obtainMessage(IGNORED_REQ_TIMEOUT));}private class PermissionsTimer extends CountDownTimer {public PermissionsTimer(long millisInFuture, long countDownInterval) {super(millisInFuture, countDownInterval);}@Overridepublic void onFinish() { //结束的时候会触发finishTimer();}@Overridepublic void onTick(long millisUntilFinished) { //每一次interval 的时候触发updateTimerButton(millisUntilFinished);}}
未完待续。。。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
