搜尋此網誌

顯示具有 android 標籤的文章。 顯示所有文章
顯示具有 android 標籤的文章。 顯示所有文章

2012年12月14日 星期五

新版的ndk 終於不用安裝 cygwin 了

最近因為電腦重安裝,就順便更新eclipse 及 android 相關的開發環境,
全部都用最新版的來裝,才發現, ndk r8c 這個版本,不再需要安裝cygwin
也能compile 和 linker 完成
只要等 eclipse 裝好 ADT 後,到window 裏的 preferences 設定 ndk 的所在目錄就可以了


但發現另一個問題,就是 include ndk 相關的 .h 檔裏,都會出現錯誤訊息
雖然可以用設定來忽略掉,完成 compile 及 make,但感覺就是不對
還在尋找解決方法中



2012年11月29日 星期四

ACER E350 安裝 CWM recovery

原文參考 http://forum.xda-developers.com/showthread.php?t=1983706
之前把手機root 過後,接著就是裝 recovery ,好方便日後刷rom 時避免手機變磚的風險
但請注意,只要是燒錄就會有風險,裝 recovery 也一樣,安裝時請自負風險

先下載 CWM pack 檔案
1.解開cwm pack 檔案
2.把手機電池先拿掉後,用usb 線跟電腦連接
3.在裝置管理員中會看到一個未知的裝置



對此裝置按右鍵選安裝驅動程式,再選擇指定檔案位置,自行根據不同windows 選擇
CWM-pack\r2-tools-acergallant\USB Drivers 此目錄下的驅動程式,我自己的電腦是win7 64bit

4.驅動程式裝好後,先把手機的usb 連接線先斷接,電池還不要裝回去
5.執行CWM-pack\r2-tools-acergallant\Flash Tool 裏頭的Flash_tool.exe(如果是win7 要用系統管理員身分執行)

5.選擇選單的 File->open scatter-loading file

再選擇 CWM-pack\r2-tools-acergallant\Scatter 裏的一個 txt 檔
6.此時下面畫面會出現一些可選的燒錄清單,主要是RECOVERY 這項,對著RECOVERY 點2下後,再選擇
CWM-pack\r2-tools-acergallant\Images 裏的 cwm6.0.1.5.lucky76_1.img 檔


7.接著按下畫面上 Download 的按鈕,再把手機用usb線接上,程式會自動偵測,並燒錄進去 recovery    映像
8.燒錄成功會出現綠色的圓圈畫面

9.此時可以把手機usb 線斷開,電池裝回去開機,之後如果手機開機要進入recovery 模式,只要同時按下 "電源" 跟 "音量按鈕上" 就可以進入


ACER E350 root

最近終於買了手機,ACER E350 Android 4.x 共花了6400
之前一直沒買因為買不下手,自己不是手機重度使用者,花1萬多買手機實在是浪費
入手後第一件先做的就是要root  好方便日後裝一些東西
主要原文參考
http://forum.xda-developers.com/showthread.php?t=1899736

我主要就是做ROOT
1.先到ACER 網站下載E350 DRIVER,解開後執行裏頭的 Install.bat,會自動判斷是32bit或64bit windows 安裝驅動程式
2.用USB 線把手機接上電腦,如果正常的話會自動識別出driver
   在裝置管理員應該要出現下圖所示裝置
3. 下載root 要用的檔案,解開後執行裏頭的 Runme.bat後選項選1 按enter

此時注意手機會出現還原選擇畫面,要按下選擇還原的選項

4.等待2次手機重開機後就root完成

2011年11月1日 星期二

如何在android 中查詢來電記錄使用日期過濾(CallLog filter DATE)

如何在android 中查詢來電記錄使用日期過濾
       cursor  = this.managedQuery(
                android.provider.CallLog.Calls.CONTENT_URI,
                strFields,               
                android.provider.CallLog.Calls.DATE+" >='"+sdate+"'",
                null,
                strOrder
                );
sdate='2011-11-1'
之前使用上列的字串日期來查詢,但總是傳回0筆資料               
為了解決這個問題,google查了好久,但始終找不到解法
最後決定由sqlite3 資料庫來查看要如何解決
來電記錄的 db 檔在 cd /data/data/com.android.providers.contacts/databases/contacts2.db 裏

先用 adb shell 進入 command shell
cd /data/dara/android.provider.contacts/databases/
sqlite3 contacts2.db
進入 sqlite3
先看一下來電記錄裏的資料長得怎樣
sqlite> select * from calls;
select * from calls;
1|0387232|1319211664323|0|1|1||0|
2|0387232|1319211858582|0|1|1||0|
3|0388709|1319715842190|8|1|1|huang|1|
4|0832413|1320148395215|2|1|1||0|

單獨select 出 date
sqlite> select date from calls;
select date from calls;
1319211664323
1319211858582
1319715842190
1320148395215

發現date 存在資料庫是 long 的數字型態,代表1970/1/1 至今的毫秒數
查了一下 sqlite3 的日期 function
可以用下列指令轉換為字串
SELECT datetime(date/1000, 'unixepoch') from calls;
2011-10-21 15:41:04
2011-10-21 15:44:18
2011-10-27 11:44:02
2011-11-01 11:53:15

終於得到正確的日期字串
再配合substr總算可以用字串日期過濾了
SELECT * from calls where substr(datetime(date/1000, 'unixepoch'),1,10)='2011-11-01';

把之前的query 條件改成下列
       cursor  = this.managedQuery(
                android.provider.CallLog.Calls.CONTENT_URI,
                strFields,               
                "substr(datetime("+android.provider.CallLog.Calls.DATE+"/1000, 'unixepoch'),1,10) ='"+sdate+"'",
                null,
                strOrder
                );
               
成功的傳回資料了