按下按鈕會發出通知和聲響,若程式在特殊手機上執行LED會亮綠燈
MainActivity.java
import android.media.AudioManager; import android.media.RingtoneManager; import android.net.Uri; import android.os.Bundle; import android.app.Activity; import android.app.Notification; import android.app.NotificationManager; import android.app.PendingIntent; import android.content.Context; import android.content.Intent; import android.support.v4.app.NotificationCompat; import android.view.View; import android.widget.Button; import android.widget.EditText; public class MainActivity extends Activity { Context mContext = this; EditText etTitle,etText; Button btNotify; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mContext = this; etTitle = (EditText) findViewById(R.id.xml_etTitle); etText = (EditText) findViewById(R.id.xml_etText); btNotify = (Button) findViewById(R.id.xml_btSend); } public void onClick(View view) { if(view.getId()==R.id.xml_btSend) { if(etTitle.length()==0 || etText.length()==0) return; //initial notification manager and audio manager NotificationManager nm = (NotificationManager) mContext.getSystemService(android.content.Context.NOTIFICATION_SERVICE); NotificationCompat.Builder builder = new NotificationCompat.Builder(mContext); AudioManager mAudioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE); // int ring_mode = mAudioManager.getRingerMode(); int DrawableId = android.R.drawable.sym_call_missed; String Title = etTitle.getText().toString(); String Text = etText.getText().toString(); //set the activity of the trigger Intent intent_missCall= new Intent(mContext, MainActivity.class); intent_missCall.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); intent_missCall.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); PendingIntent pIntent = PendingIntent.getActivity(mContext, 0, intent_missCall, PendingIntent.FLAG_UPDATE_CURRENT); // boolean AutoCancel = true; boolean OnGoing = false; //light the LED. color is green.(It's not action on every cellphone) builder.build().ledARGB = 0x00FF00; builder.build().ledOnMS = 100; builder.build().ledOffMS = 100; builder.build().flags = Notification.FLAG_SHOW_LIGHTS; // //change the notify effect by checking the ring mode if(ring_mode == AudioManager.RINGER_MODE_NORMAL ) { Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); builder.setSound(notification); } if(ring_mode == AudioManager.RINGER_MODE_VIBRATE) { builder.setVibrate(new long[] { 1000, 1000, 1000, 1000, 1000 }); } // //set the notification and notify builder.setTicker(Title) .setContentTitle(Title) .setContentText(Text) .setSmallIcon(DrawableId) .setAutoCancel(AutoCancel) .setOngoing(OnGoing) .setContentIntent(pIntent); nm.notify(0, builder.build()); // } } }
activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" > <Button android:id="@+id/xml_btSend" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_below="@+id/editText1" android:layout_marginTop="90dp" android:onClick="onClick" android:text="Notify" /> <EditText android:id="@+id/xml_etTitle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_alignParentTop="true" android:ems="10" > <requestFocus /> </EditText> <EditText android:id="@+id/xml_etText" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBottom="@+id/xml_tvNotifyText" android:layout_alignParentRight="true" android:ems="10" /> <TextView android:id="@+id/xml_tvNotifyText" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignRight="@+id/xml_tvNotifyTitle" android:layout_below="@+id/xml_etTitle" android:layout_marginTop="16dp" android:text="NotifyText:" android:textAppearance="?android:attr/textAppearanceLarge" /> <TextView android:id="@+id/xml_tvNotifyTitle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBottom="@+id/xml_etTitle" android:layout_alignParentLeft="true" android:text="Notify Title:" android:textAppearance="?android:attr/textAppearanceLarge" /> </RelativeLayout>
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.notify_test" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="16" /> <uses-permission android:name="android.permission.VIBRATE"/> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.notify_test.MainActivity" 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> </manifest>
沒有留言 :
張貼留言