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);}}




未完待续。。。




本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部