android.app.Notification 使用笔记
package com.union.matchfighter; import android.app.Notification; import android.app.NotificationManager; import android.app.PendingIntent; import android.content.Intent; import com.example.clearicon.MainActivity; import com.example.clearicon.R; import com.unity3d.player.UnityPlayerActivity; public class PNotification { private Notification notification; private NotificationManager nManager; private Intent intent; private PendingIntent pIntent; private static final int ID = 1; public void SendMessage( UnityPlayerActivity activity , String tickerText, String title, String context , int delay , int ID ) { System.out.println("SendMessage start"); String service = activity.NOTIFICATION_SERVICE; nManager = (NotificationManager) activity.getSystemService(service); notification = new Notification(); long when = System.currentTimeMillis(); notification.icon = R.drawable.ic_launcher;// 设置通知的图标 notification.tickerText = tickerText; // 显示在状态栏中的文字 notification.when = when; // 设置来通知时的时间 //notification.when = when; // 设置来通知时的时间 //notification.sound = Uri.parse("android.resource://com.sun.alex/raw/dida"); // 自定义声音 //notification.flags = Notification.FLAG_NO_CLEAR; // 点击清除按钮时就会清除消息通知,但是点击通知栏的通知时不会消失 //notification.flags = Notification.FLAG_ONGOING_EVENT; // 点击清除按钮不会清除消息通知,可以用来表示在正在运行 notification.flags |= Notification.FLAG_AUTO_CANCEL; // 点击清除按钮或点击通知后会自动消失 //notification.flags |= Notification.FLAG_INSISTENT; // 一直进行,比如音乐一直播放,知道用户响应 notification.defaults = Notification.DEFAULT_SOUND; // 调用系统自带声音 //notification.defaults = Notification.DEFAULT_SOUND;// 设置默认铃声 //notification.defaults = Notification.DEFAULT_VIBRATE;// 设置默认震动 //notification.defaults = Notification.DEFAULT_ALL; // 设置铃声震动 //notification.defaults = Notification.DEFAULT_ALL; // 把所有的属性设置成默认 intent = new Intent( activity , MainActivity.class); // 获取PendingIntent,点击时发送该Intent pIntent = PendingIntent.getActivity(activity, 0, intent, 0); // 设置通知的标题和内容 notification.setLatestEventInfo( activity, title , context , pIntent); System.out.println("SendMessage start 22"); // 发出通知 nManager.notify(ID, notification); System.out.println("SendMessage end"); } static PNotification _instance ; public static PNotification getInstance() { if( _instance == null) _instance = new PNotification(); return _instance ; } /* 需要将这段代码放到住UI上 public void PNotification_SendMessage( String tickerText, String title, String context , int delay , int ID ) { PNotification.getInstance().SendMessage( this , tickerText, title, context , delay , ID); } */ }
unity
using UnityEngine; using System.Collections; public class PNotification { public void sendMessage(string tickerText, string title, string context, int delay, int ID) { if( Application.platform == RuntimePlatform.Android) { sendMessageAndroid(tickerText, title, context, delay, ID); }else { Debug.Log(Application.platform + " : was not fix "); } } public void sendMessageAndroid(string tickerText, string title, string context , int delay , int ID) { AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity"); jo.Call("PNotification_SendMessage", tickerText, title, context , delay , ID ); } static PNotification _instance; public static PNotification instance { get { if (_instance == null) _instance = new PNotification(); return _instance; } } }