2011年8月30日

連結:Android Developer Guide

Android Developer Guide:
from Linuxpia
仔細的介紹!

2011年8月27日

Android: doom-android - port doom to android phone

doom-android - port doom to android phone - Google Project Hosting

Android: android rtmp network recorder

android-recorder - android rtmp network recorder - Google Project Hosting

This is a complete example for android-rtmp-client. Now you can download the whole project from Downloads tab.
android-recorder是为演示android-rtmp-client库在android上的使用而创建的项目,这只是一个功能演示,而不是一个完整的产品。每一次迭代过程中的代码和相关工具都已打包上传到 Downloads下。
Main change of each version:
Get PCM data from mic.
Encode with speex.

Android: Tutorial

Android Tutorial

10 Open Source Android Apps which every Android developer must look into

10 Open Source Android Apps which every Android developer must look into

讓Blogger支援Syntax Highlighting

想顯示程式的Syntax Highlighting,在網上google半天,先找到SyntaxHighlighter。用了之後效果是很棒,但因為連結它所提供的網站速度,還是有點兒慢,所以今天繼續找尋別的方式。結果踏破鐵鞋無覓處,得來全不費功夫,Google的google-code-prettify就很好用了呀!真奇怪,Blogger也是Google的,怎麼不內建此功能呢?

參考網站說明和作法整理如下:將底下的javascrip放到範本</head>之前即可,其中修改了背景顏色、邊框顏色和邊距等參數。
<script language='javascript' src='http://google-code-prettify.googlecode.com/svn/trunk/src/prettify.js' type='text/javascript'/>
<link href='http://google-code-prettify.googlecode.com/svn/trunk/src/prettify.css' rel='stylesheet' type='text/css'/>
<style>
pre {
  background-color : #f7f7f7;
  overflow         : auto ;
}
pre.prettyprint { padding: 12px; border: 1px solid #777; }
</style>

Android HttpClient / Java URL

取得網頁

String urL = "http://www.網址..";
HttpPost  httpP = new HttpPost (urL);
List <NameValuePair> params = new ArrayList <NameValuePair>();
params.add(new BasicNameValuePair("param1", "value1"));
try {
    httpP.setEntity(new UrlEncodedFormEntity(params,HTTP.UTF_8));
    HttpResponse httpR = new DefaultHttpClient().execute(httpP);
    if (httpR.getStatusLine().getStatusCode() == 200) {
    String ret = EntityUtils.toString(httpR.getEntity());
    Toast.makeText(main.this, out1, Toast.LENGTH_LONG).show();
    }
} catch (Exception e) {
  e.printStackTrace();
}

取得圖片
try {
    String urlAddress = "http://a.rimg.com.tw/ahd/01_106.jpg" ;
    InputStream is = (InputStream) (new URL(urlAddress)).getContent();
    Drawable image = Drawable.createFromStream(is, "src");
    capImage.setImageDrawable(image);
} catch (MalformedURLException e) {
    e.printStackTrace();
} catch (Exception e) {
    e.printStackTrace();
}

2011年8月26日

Android: Bluetooth相關

BluetoothChat - Bluetooth Chat | Android Developers

JWorld@TW Java論壇 - Android Bluetooth API 使用心得筆記

apps-for-android - Sample Applications for the Android platform - Google Project Hosting

anddev.org • View topic - Serial over Bluetooth simple test client.

2011年8月25日

轉貼:Android TTS学习——TTS初体验 - ichliebephone的专栏 - 博客频道 - CSDN.NET

Android TTS学习——TTS初体验 - ichliebephone的专栏 - 博客频道 - CSDN.NET:
"ichliebephone的专栏"


Java : ==

== 運算在Java中被用來比較左右兩個名稱,是否指向同一物件,例如:
String a = new String("abcd");
String b = new String("abcd");
此時if (a==b)為false,因為a與b是分別指向不同的字串物件,

當要比較兩個字串內容是否相同,要用equals()
例如:

String a = new String("abcd");
String b = new String("abcd");


此時 if (a.equals(b)) 為true

2011年8月24日

Android: 存放檔案到sd卡


Activity的openFileOutput()將檔案存在手機內存記憶空間,
一般而言手機的內存記憶空間不大,存放小檔案還ok,
對於大檔案我們需放在外部的SD卡。
在AndroidManifest.xml中加入以下權限:  
      
    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>       
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
            // 判斷手機是否已装有SD卡,且可以讀寫。  
            if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){  
                // 取得SD卡目錄
                File sdDir = Environment.getExternalStorageDirectory(); 
                File saveFile = new File(sdDir, "test.txt");  
                FileOutputStream outS = new FileOutputStream(saveFile);  
                outS.write("Hellow,World.許功閱".getBytes());  
                outS.close();  
            }

Android: 時鐘Clock機制

大略翻譯Android技術文件如下:
Android 有三種不同的時鐘可用,分別陳述如下:
  • System.currentTimeMillis() 如同掛在牆壁上的時鐘(時間/日期)以milliseconds表示之,可被使用者或經由網路隨意往前或往後調整的時鐘(函數setCurrentTimeMillis(long))。此時鐘應該只用來與真實時間相關是務上,例如行事曆或鬧鐘等應用程式。計算時距或經過時間,應該使用底下的時鐘。當使用System.currentTimeMillis() 時,可以接收 ACTION_TIME_TICKACTION_TIME_CHANGEDACTION_TIMEZONE_CHANGEDIntent的廣播來得知時間的改變。
  • SystemClock.uptimeMillis() 計算從系統啟動booted到現在所經過的milliseconds時間,但當系統進入深睡時(CPU停止,螢幕關閉,裝置等待外部輸入) 此時鐘會停止,除此之外不受其他影響。此時鐘是大部份計算時間間隔的基礎,例如Thread.sleep(millls)Object.wait(millis)System.nanoTime()
    它保證是遞增的,建議用來
    計算一般使用者介面事件、效能或其他任何無須考慮裝置睡覺時間的時間間隔。uptimeMillis() clock 傳回 timestamp 值。
  • SystemClock.elapsedRealtime() 計算從系統啟動booted到現在所經過的milliseconds時間,包括系統深睡時間。此時鐘用來必須計算橫跨多個系統睡覺時間的時間間隔。

Android: AlarmManager 鬧鐘用法


Alarm Manager元件用來排程,當時間到時系統會廣播註冊指定的Intent啟動目標程式,就算目標程式並未在執行中也一樣。若是裝置在睡眠中,則依參數而定,註冊的鬧鐘會保留或喚醒裝置。當系統關閉並rebooted時,會清除鬧鐘的設定。當廣播接受端執行onReceive() 時,Alarm Manager會保持CPU清醒直到處理結束。裝置有可能一旦執行完onReceive()時,立刻進入昏睡(睡眠不足:),所以不要在onReceive()中呼叫非同步動作的函數。若一定要作時,請自行處理wake lock policy(鎖定清醒)。
  • ELAPSED_REALTIME 使用 elapsedRealtime() 計時;從系統啟動後至目前的時間(包含睡覺時間)
  • ELAPSED_REALTIME_WAKEUP 同上,並喚醒裝置
  • RTC 使用 currentTimeMillis() 牆壁時鐘UTC格式
  • RTC_WAKEUP  同上,並喚醒裝置

2011年8月23日

Android: Intent 呼叫瀏覽器開啟指定網頁

底下試舉兩種Intent呼叫方法,用兩個Button掛在同一個接收器用getID()區分。
Button.OnClickListener btnCallTestClickListener
= new Button.OnClickListener(){
@Override
public void onClick(View arg0) {
    try {
        String strURL1 = "http://tw.yahoo.com";
        String strURL2 = "http://www.google.com.tw";
        switch (arg0.getId()) {
         case R.id.callTest1:
          Intent ie = new Intent(Intent.ACTION_VIEW,Uri.parse(strURL1));
          startActivity(ie);
          break;
         case R.id.callTest2:
          Intent ie2 = new Intent();
          ComponentName comp = new ComponentName("com.android.browser",
            "com.android.browser.BrowserActivity");
          ie2.setComponent(comp);
          ie2.setAction(Intent.ACTION_VIEW);
          ie2.setData(Uri.parse(strURL2));
          startActivity(ie2);
          break;
        }
        //
     } catch (Exception e) {
        e.printStackTrace();
     }
       
}};

連結: 在 Android 裡讓鬧鐘設定撐過關機(AlarmManager)

Java Artisan: 在 Android 裡讓鬧鐘 Alarm設定撐過關機(AlarmManager)