Unity安卓本地推送
生活随笔
收集整理的這篇文章主要介紹了
Unity安卓本地推送
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
新建推送腳本:LocalReceive
import android.annotation.SuppressLint; import android.annotation.TargetApi; import android.app.Activity; import android.app.AlarmManager; import android.app.Notification; import android.app.NotificationChannel; import android.app.NotificationManager; import android.app.PendingIntent; import android.app.TaskStackBuilder; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.res.Resources;import com.unity3d.player.UnityPlayer;public class LocalReceiver extends BroadcastReceiver {// private static Set<String> channels = new HashSet();private NotificationManager manager;@Overridepublic void onReceive(Context context, Intent intent) { // Toast.makeText(context, "開(kāi)始工作了!!!", Toast.LENGTH_LONG).show();//頂部通知manager=(NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE);//點(diǎn)擊通知欄跳轉(zhuǎn)Intent playIntent = new Intent(context, UnityPlayerActivity.class);//PendingIntent,和Intent類(lèi)似,不同的是由于不是馬上調(diào)用PendingIntent pendingIntent = PendingIntent.getActivity(context, 1, playIntent, PendingIntent.FLAG_UPDATE_CURRENT);Notification.Builder builder = new Notification.Builder(context);Resources res = context.getResources();builder.setContentTitle("title").setContentText("提醒內(nèi)容").setSmallIcon(R.drawable.ic_launcher).setDefaults(Notification.DEFAULT_ALL).setContentIntent(pendingIntent).setAutoCancel(true).setSubText("早點(diǎn)休息!");int app_icon = res.getIdentifier("app_icon", "drawable", context.getPackageName());builder.setSmallIcon(app_icon);final Notification notify = builder.build();manager.notify(1, builder.build());}public static void ClearShowingNotifications() {Activity currentActivity = UnityPlayer.currentActivity;@SuppressLint("WrongConstant") NotificationManager nm = (NotificationManager)currentActivity.getSystemService("notification");nm.cancelAll();}}?UnityPlayerActivity中調(diào)用:
//先清空 本地推送內(nèi)容public void ClearShowing(){LocalReceiver.ClearShowingNotifications();}//android 推送功能public void AndroidNotification(){//LocalReceiver.SetRepeatingNotification(id,delayMs,title,message,ticker,rep,sound,soundName,vibrate,lights,largeIconResource,smallIconResource,bgColor,bundle,channel,actions);setReminder(true);}public void setReminder(boolean reminder){AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);PendingIntent pi = PendingIntent.getBroadcast(UnityPlayerActivity.this, 0, new Intent(this, LocalReceiver.class), 0);if (reminder) {//設(shè)置鬧鐘Calendar instance = Calendar.getInstance();instance.setTimeInMillis(System.currentTimeMillis());instance.setTimeZone(TimeZone.getTimeZone("GET+8"));instance.add(Calendar.SECOND, 5);//設(shè)置5秒am.setRepeating(AlarmManager.RTC_WAKEUP, instance.getTimeInMillis(), 60000, pi); // am.set(AlarmManager.RTC_WAKEUP, instance.getTimeInMillis(),pi);}else {am.cancel(pi);//關(guān)閉鬧鐘}}回到Unity中:
void Awake (){ClearNotifications();//android 清空推送}void Start (){androidNotification();//android 推送} //android 推送public void androidNotification(){//LocalNotification.SendRepeatingNotification(1, 5000, 5000, "一起捕魚(yú)吧", "炮聲一響,黃金萬(wàn)兩", new Color32(0xff, 0x44, 0x44, 255));AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity");jo.Call("AndroidNotification");Debug.Log("android 通知功能=======");}//android 清空推送public void ClearNotifications(){AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity");jo.Call("ClearShowing");Debug.Log("android 清空通知功能======="); }總結(jié)
以上是生活随笔為你收集整理的Unity安卓本地推送的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: OSChina 周一乱弹 —— 红薯获得
- 下一篇: android防止快速点击