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;
        }
    }
}

 

posted @ 2014-10-23 17:20  尚菜  阅读(467)  评论(0编辑  收藏  举报