2012년 7월 21일 토요일

ICS에서 mouse right click 시 back button 처럼 동작하기

Ginger Bread에서 USB Mouse에서 Right Click은 Back, Wheel은 Menu로 동작 하였습니다.

하지만 ICS부터는 모두 click으로 처리가 됩니다. Screen key(Navigation bar) 때문에 따로 mouse에 right가 Back button으로 동작하지 않아도 안드로이드를 사용할 수 있기 때문으로 판단됩니다.

그래도 Right Click이 Mouse Back Button 처럼 동작하는게 편합니다.
framework/base/services/input/InputReader.cpp를 아래와 같이 수정 하면 됩니다.

1077 void CursorButtonAccumulator::process(const RawEvent* rawEvent) {
1078     if (rawEvent->type == EV_KEY) {
1079         switch (rawEvent->scanCode) {
1080         case BTN_LEFT:
1081             mBtnLeft = rawEvent->value;
1082             break;
1083         case BTN_RIGHT:
1084             //codewalker
1085             //mBtnRight = rawEvent->value;
1086             mBtnBack = rawEvent->value;

2012년 7월 5일 목요일

android (Mass Storage)PC에 자동 마운트 하기

android에서 MTP가 아닌 Mass Storage 방식의 경우 USB 연결 시 자동으로 Mount하려고 합니다.

framework/base/packages/SystemUI/src/com/android/systemui/usb/StorageNotification.java

 95
 96     private void onUsbMassStorageConnectionChangedAsync(boolean connected) {
 97         mUmsAvailable = connected;
 98         /*
 99          * Even though we may have a UMS host connected, we the SD card
100          * may not be in a state for export.
101          */
102         String st = Environment.getExternalStorageState();
103
104         Slog.i(TAG, String.format("UMS connection changed to %s (media state %s)", connected, st));
105
106         if (connected && (st.equals(
107                 Environment.MEDIA_REMOVED) || st.equals(Environment.MEDIA_CHECKING))) {
108             /*
109              * No card or card being checked = don't display
110              */
111             connected = false;
112         }
113         updateUsbMassStorageNotification(connected);
114
115         mStorageManager.enableUsbMassStorage();
116     }

위와 같이 수정하면 USB 연결 시 자동으로 Mass Storage가 PC에 연결 됩니다.