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




未完待续。。。



你可能感兴趣的:(java,基础)