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;
}
}
}
浙公网安备 33010602011771号