2010年6月27日 星期日

Android學習筆記 - 通知(Notification)

1. 一般在使用通知的時候,是不需要額外的權限。但此範例設定在通知的時候需發出預設的通知震動,因此需在AndroidManifest.xml允許存取android.permission.VIBRATE這個權限。

2.NotificationExample.java
package tw.nicky;
import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class NotificationExample extends Activity {
    private Button notifyButn;
   
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        notifyButn = (Button)findViewById(R.id.notifyButn);
        notifyButn.setOnClickListener(new View.OnClickListener() {
           
            @Override
            public void onClick(View v) {
                //取得Notification服務
                NotificationManager notificationManager=(NotificationManager)getSystemService(NOTIFICATION_SERVICE);
                //設定當按下這個通知之後要執行的activity
                Intent notifyIntent = new Intent(NotificationExample.this,NotificationExample.class); 
                notifyIntent.setFlags( Intent.FLAG_ACTIVITY_NEW_TASK);
                PendingIntent appIntent=PendingIntent.getActivity(NotificationExample.this,0,
                                                                  notifyIntent,0);
                Notification notification = new Notification();
                //設定出現在狀態列的圖示
                notification.icon=R.drawable.icon;
                //顯示在狀態列的文字
                notification.tickerText="notification on status bar.";
                //會有通知預設的鈴聲、振動、light
                notification.defaults=Notification.DEFAULT_ALL;
                //設定通知的標題、內容
                notification.setLatestEventInfo(NotificationExample.this,"Title","content",appIntent);
                //送出Notification
                notificationManager.notify(0,notification);
               
            }
        });
    }
}
3. main.xml(Layout)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/hello"
    />
<Button
    android:text="Notify"
    android:id="@+id/notifyButn"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
</Button>
</LinearLayout>

4. AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="tw.nicky"
      android:versionCode="1"
      android:versionName="1.0">
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".NotificationExample"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
    <uses-permission android:name="android.permission.VIBRATE" />
</manifest>


5. 執行畫面


2010年6月22日 星期二

Android學習筆記 - 發送SMS訊息

1. 若需使用發送SMS的服務,需在AndroidManifest.xml允許存取android.permission.SEND_SMS這個權限。

2.SendSMSExample.java
package tw.nicky.SendSMSExample;

import android.app.Activity;
import android.app.PendingIntent;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.SmsManager;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class SendSMSExample extends Activity {
 private EditText phoneNumEditText;
 private EditText msgEditText;
 private Button sendButton;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        //電話號碼
        phoneNumEditText = (EditText)findViewById(R.id.phoneNumEditText);
        //訊息
        msgEditText = (EditText)findViewById(R.id.msgEditText);
        sendButton = (Button)findViewById(R.id.sendButton);
        
        //按下發送按鈕
        sendButton.setOnClickListener(new View.OnClickListener() {
   
   @Override
   public void onClick(View v) {
    //取得預設的SmsManager
    SmsManager smsManager = SmsManager.getDefault();
    PendingIntent pendingIntent = PendingIntent.getBroadcast(SendSMSExample.this, 0, new Intent(), 0);
    //傳送SMS
    smsManager.sendTextMessage(phoneNumEditText.getText().toString(), null, msgEditText.getText().toString(), pendingIntent, null);
   }
  });
    }
}
3. main.xml(Layout)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="vertical" android:layout_width="fill_parent"
 android:layout_height="fill_parent">
 <TextView 
     android:layout_width="fill_parent"
  android:layout_height="wrap_content" 
  android:text="@string/hello" />
 <EditText 
     android:id="@+id/phoneNumEditText"
  android:layout_width="wrap_content" 
  android:layout_height="wrap_content"></EditText>
 <EditText 
     android:id="@+id/msgEditText"
  android:layout_width="wrap_content" 
  android:layout_height="wrap_content"></EditText>
 <Button 
     android:id="@+id/sendButton"
     android:text="發送"
  android:layout_width="wrap_content" 
  android:layout_height="wrap_content"></Button>
</LinearLayout>

4. AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="tw.nicky.SendSMSExample"
      android:versionCode="1"
      android:versionName="1.0">
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".SendSMSExample"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
    <uses-permission android:name="android.permission.SEND_SMS" />
</manifest> 


5. 執行畫面


2010年6月3日 星期四

HTC Hero終於要升級Android 2.1了

來自官方Plurk的消息,確定於2010.06.04起開發軟體無線更新…

而這次更新的內容就是大家所期待的Android 2.1作業系統升級…

大家趕快去升級吧!