網頁

2014年11月28日 星期五

ScreenOff 一鍵鎖屏

在 Activity 中
PowerManager pm = (PowerManager)getSystemService(Context.POWER_SERVICE);
pm.goToSleep(SystemClock.uptimeMillis());
在 AndroidManifest.xml 中
<uses-permission android:name="android.permission.DEVICE_POWER"/>
失敗


在 Activity 中
PowerManager pm = (PowerManager)getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "GoToSleep");
wl.acquire();
wl.release();
在 AndroidManifest.xml 中
<uses-permission android:name="android.permission.DEVICE_POWER"/>
失敗


在 Activity 中
WindowManager.LayoutParams params = getWindow().getAttributes();
params.flags |= LayoutParams.FLAG_KEEP_SCREEN_ON;
params.screenBrightness = 0;
getWindow().setAttributes(params);
成功 但只是螢幕切暗


在 Activity 中
mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);
mPowerManager = (PowerManager)getSystemService(POWER_SERVICE);
mWindowManager = (WindowManager)getSystemService(WINDOW_SERVICE);
mWindowManager.getDefaultDisplay();
mWakeLock = mPowerManager.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, getClass().getName());
在 protected void onResume() 中
mWakeLock.acquire();
在 protected void onPause() 中
mWakeLock.release();
在 AndroidManifest.xml 中
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.HARDWARE_TEST" />
失敗


2014年11月27日 星期四

控制 Eclipse 的虛擬機器

可以直接使用鍵盤輸入資料
需要用Shift才可鍵入的字元需要加按Alt

Home -> Home
Esc -> Back
F2 -> Menu
F3 -> 撥號鍵
F4 -> 掛斷鍵
F5 -> 搜尋鍵
F8 -> 網路開關
Ctrl+F11 -> 旋轉螢幕

adb shell input keyevent 26

0 -> "KEYCODE_UNKNOWN"
1 -> "KEYCODE_MENU" 
2 -> "KEYCODE_SOFT_RIGHT" 
3 -> "KEYCODE_HOME" 
4 -> "KEYCODE_BACK" 
5 -> "KEYCODE_CALL" 
6 -> "KEYCODE_ENDCALL" 
7 -> "KEYCODE_0" 
8 -> "KEYCODE_1" 
9 -> "KEYCODE_2" 
10 -> "KEYCODE_3" 
11 -> "KEYCODE_4" 
12 -> "KEYCODE_5" 
13 -> "KEYCODE_6" 
14 -> "KEYCODE_7" 
15 -> "KEYCODE_8" 
16 -> "KEYCODE_9" 
17 -> "KEYCODE_STAR" 
18 -> "KEYCODE_POUND" 
19 -> "KEYCODE_DPAD_UP" 
20 -> "KEYCODE_DPAD_DOWN" 
21 -> "KEYCODE_DPAD_LEFT" 
22 -> "KEYCODE_DPAD_RIGHT" 
23 -> "KEYCODE_DPAD_CENTER" 
24 -> "KEYCODE_VOLUME_UP" 
25 -> "KEYCODE_VOLUME_DOWN" 
26 -> "KEYCODE_POWER" 
27 -> "KEYCODE_CAMERA" 
28 -> "KEYCODE_CLEAR" 
29 -> "KEYCODE_A" 
30 -> "KEYCODE_B" 
31 -> "KEYCODE_C" 
32 -> "KEYCODE_D" 
33 -> "KEYCODE_E" 
34 -> "KEYCODE_F" 
35 -> "KEYCODE_G" 
36 -> "KEYCODE_H" 
37 -> "KEYCODE_I" 
38 -> "KEYCODE_J"
39 -> "KEYCODE_K" 
40 -> "KEYCODE_L" 
41 -> "KEYCODE_M" 
42 -> "KEYCODE_N" 
43 -> "KEYCODE_O" 
44 -> "KEYCODE_P" 
45 -> "KEYCODE_Q" 
46 -> "KEYCODE_R" 
47 -> "KEYCODE_S" 
48 -> "KEYCODE_T" 
49 -> "KEYCODE_U" 
50 -> "KEYCODE_V" 
51 -> "KEYCODE_W" 
52 -> "KEYCODE_X" 
53 -> "KEYCODE_Y" 
54 -> "KEYCODE_Z" 
55 -> "KEYCODE_COMMA" 
56 -> "KEYCODE_PERIOD" 
57 -> "KEYCODE_ALT_LEFT" 
58 -> "KEYCODE_ALT_RIGHT" 
59 -> "KEYCODE_SHIFT_LEFT" 
60 -> "KEYCODE_SHIFT_RIGHT" 
61 -> "KEYCODE_TAB" 
62 -> "KEYCODE_SPACE" 
63 -> "KEYCODE_SYM" 
64 -> "KEYCODE_EXPLORER" 
65 -> "KEYCODE_ENVELOPE" 
66 -> "KEYCODE_ENTER" 
67 -> "KEYCODE_DEL" 
68 -> "KEYCODE_GRAVE" 
69 -> "KEYCODE_MINUS" 
70 -> "KEYCODE_EQUALS" 
71 -> "KEYCODE_LEFT_BRACKET" 
72 -> "KEYCODE_RIGHT_BRACKET" 
73 -> "KEYCODE_BACKSLASH" 
74 -> "KEYCODE_SEMICOLON" 
75 -> "KEYCODE_APOSTROPHE" 
76 -> "KEYCODE_SLASH" 
77 -> "KEYCODE_AT" 
78 -> "KEYCODE_NUM" 
79 -> "KEYCODE_HEADSETHOOK" 
80 -> "KEYCODE_FOCUS" 
81 -> "KEYCODE_PLUS" 
82 -> "KEYCODE_MENU" 
83 -> "KEYCODE_NOTIFICATION" 
84 -> "KEYCODE_SEARCH" 
85 -> "TAG_LAST_KEYCODE"

2014年11月19日 星期三

How to add drawable resource

1. 建立 res/drawable folder
2. File/New/Android XML File
3. Resource Type: Drawable
4. 輸入 File
5. 選擇 Root Element

How to add PreferenceActivity

1. 建立 res/xml folder
2. File/New/Android XML File
3. Resource Type: Preference
4. 輸入 File
5. 選擇 Root Element

2014年11月18日 星期二

2014年11月13日 星期四

Android clickMenuItem

不要使用 menu 的 android:onClick="clickMenuItem"
不論你用 public void clickMenuItem(MenuItem item)
或者 public boolean clickMenuItem(MenuItem item)
都會產生 android.view.InflateException: Couldn't resolve menu item onClick handler clickMenuItem in class android.view.ContextThemeWrapper 錯誤

使用精靈產生的 public boolean onOptionsItemSelected(MenuItem item) 即可





Android Layout

LinearLayout
android:orientation="vertical|horizontal":垂直或水平
android:layout_weight="比例":寬或高所佔整個Layout的比例


RelativeLayout
android:layout_位置="@id/元件名稱":位置可以是 above, below, toLeftOf, toRightOf
android:layout_align對齊="@id/元件名稱":對齊可以是 top, bottom, left, right
android:layout_alignParent對齊="true|false":對齊可以是 top, bottom, left, right
android:layout_center對齊="true|false":對齊可以是 horizontal, vertical, inParent


TableLayout 會包含數個 TableRow,元件置於 TableRow 中,預設元件的寬度是 wrap_content 的效果



2014年11月10日 星期一

Run Android App

1. 程式寫好後,選 Run/Run Configurations...
2. 選擇 Target 頁簽,點選 Always prompt to pick device
3. 點選 Run
4. 出現 Android Device Chooser
5. 選擇 模擬器 按 OK

1. Run As/Android Application

利用 DDMS 測試程式
1. 連接手機到電腦
2. 手機進入USB偵測模式
3. 進入 Eclipse
4. 選擇 Window/Open Perspective/DDMS
5. 此時可看到手機

1. 進入 命令提示字元
2. cd C:\eclipse4_64\android-sdk-windows\tools
3 emulator.exe -avd avdname -memory 512 -partition-size 512
4 cd C:\eclipse4_64\android-sdk-windows\platform-tools
5 adb root
6 adb remount
7 以下選一執行,安裝路徑不一樣
7.a adb push D:\EclipseAndroid\Study\GoToSleep\GoToSleep.apk /system/app/GoToSleep.apk
7.b adb install D:\EclipseAndroid\Study\GoToSleep\GoToSleep.apk
8.a adb shell
8.b ls /data/data or /data/app 查詢 package 名稱
8.c exit
9 adb uninstall com.example.gotosleep

Eclipse 之 DDMS 使用 Android 萬用驅動程式

1. 手機進入 USB 偵錯模式
2. 電腦 控制台/裝置管理員 出現驚嘆號,表示沒有驅動的手機
3. 用右鍵點選手機 內容 切換 詳細資料 頁
4. 屬性 選擇 硬體識別碼
5. 複製 值 如下 USB\VID\0BB4&PID_0DFB&MI_01
6. 開啟 Eclipse 選擇 Window/Android SDK Manager
7. 確認在最底下 Extras/Google USB Driver 有安裝
8. 用記事本開啟 C:\eclipse4_64\android-sdk-windows\extras\google\usb_driver\android_winusb.inf
9. [Google.NTx86] 表示32位元作業系統,[Google.NTamd64]表示64位元作業系統
10. 選擇適當的作業系統位置,新增如下兩行
; Device Name
%CompositeAdbInterface% = USB_Install, USB\VID\0BB4&PID_0DFB&MI_0111. 介面有下列三種,請測試看看
%SingleAdbInterface%
%CompositeAdbInterface%
%SingleBootLoaderInterface%
12. 回到裝置管理員,安裝驅動動程式,驅動程式位置
C:\eclipse4_64\android-sdk-windows\extras\google\usb_driver

Win8 64bits 停用驅動程式強制簽章

1. Win+C/變更電腦設定
2. 更新與復原/復原
3. 選擇 進階啟動 之 立即重新啟動
4. 選擇 疑難排解/進階選項/啟動設定/重新啟動
5. 使用數字鍵或功能鍵 選擇 停用驅動程式強制簽章

開發人員選項

一般在設定已經找不到這個選項,因為預設隱藏起來了。
1. 進入 設定/關於/軟體資訊/更多
2. 在建置號碼 上面點七下
3. 重新進入 設定,此時就可以找到 開發人員選項

以上是開啟 開發人員選項的方法,但是怎麼隱藏呢?
1. 進入 設定/應用程式
2. 切換到 全部 分頁
3. 找到 設定 這個程式
4. 點選 清除資料

2014年11月5日 星期三