Unity安卓本地推送
新建推送脚本: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, "开始工作了!!!", Toast.LENGTH_LONG).show();//顶部通知manager=(NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE);//点击通知栏跳转Intent playIntent = new Intent(context, UnityPlayerActivity.class);//PendingIntent,和Intent类似,不同的是由于不是马上调用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("提醒内容").setSmallIcon(R.drawable.ic_launcher).setDefaults(Notification.DEFAULT_ALL).setContentIntent(pendingIntent).setAutoCancel(true).setSubText("早点休息!");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中调用:
//先清空 本地推送内容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) {//设置闹钟Calendar instance = Calendar.getInstance();instance.setTimeInMillis(System.currentTimeMillis());instance.setTimeZone(TimeZone.getTimeZone("GET+8"));instance.add(Calendar.SECOND, 5);//设置5秒am.setRepeating(AlarmManager.RTC_WAKEUP, instance.getTimeInMillis(), 60000, pi); // am.set(AlarmManager.RTC_WAKEUP, instance.getTimeInMillis(),pi);}else {am.cancel(pi);//关闭闹钟}}
回到Unity中:
void Awake (){ClearNotifications();//android 清空推送}void Start (){androidNotification();//android 推送} //android 推送public void androidNotification(){//LocalNotification.SendRepeatingNotification(1, 5000, 5000, "一起捕鱼吧", "炮声一响,黄金万两", 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 清空通知功能======="); }
Unity安卓本地推送相关推荐
- unity android本地推送,Unity安卓本地推送
https://blog.csdn.net/macaopark/article/details/69053691 新建推送脚本:LocalReceive import android.annotati ...
- Unity 应用的消息推送《一》本地推送
欢迎加入Unity业内qq交流群:956187480 qq扫描二维码加群 参考博客地址:https://blog.csdn.net/qq_37310110/article/details/804234 ...
- Unity如何接入本地推送 Mobile Notifications
一. 前言 当一款游戏发展到一定阶段,必不可少的要接入推送SDK,推送功能,分为以下两种: 本地推送:玩家打开游戏后,给手机系统通知设置推送的倒计时,等游戏关闭后,倒计时结束时,手机会自动打开通知给用 ...
- IOS 本地推送和远程推送
最近在研究iOS的推送问题,遇到了好多问题,经过很多大神的文章指点最终整理了一下,放在这里和大家分享. 准备工作 首先要有一台苹果的设备,模拟器是不支持推送的,所以你需要一台iphone,ipod t ...
- Swift 本地推送通知UILocalNotification
Notification是智能手机应用开发中常用的信息传递机制,它不用消耗更多资源去不停的检查信息状态,可以非常好的节省资源. 在iOS中分为两种通知:本地.远程.本地的UILocalNotifica ...
- IOS 本地推送 IOS10.0以上 static的作用 const的作用
//需要在AppDelegate里面启动APP的函数 加上 UIUserNotificationType types = UIUserNotificationTypeBadge | UIUserNot ...
- 极光推送收费标准_刚刚,安卓统一推送又有进展了!华为率先...
点击上方"开发者技术前线",选择"星标"13:50 在看 真爱来自:统一推送联盟 众所周知,2017年,泰尔终端实验室联合包括华为.OPPO.vivo.小米.三 ...
- git 本地推送本地仓库到远程
github或者gitee远程新建空仓库,在本地推送已有的仓库到远程新仓库. 1.远程新建新仓库,例如stm32repo 2.本地仓库添加远程仓库 git remote add origin htt ...
- SWIFT推送之本地推送(UILocalNotification)之二带按钮的消息
上一篇讲到的本地推送是普通的消息推送,本篇要讲一下带按钮动作的推送消息,先上个图瞅瞅: 继上一篇的内容进行小小的改动: 在didFinishLaunchingWithOptions方法内进行以下修改 ...
最新文章
- sqlite复制数据主键重复_Flutter 数据库指南
- Could not get dialect instance.
- 【Spring】BeanFactory解析bean详解
- Font Rending 的 Hint 机制对排版的影响
- matlab vision工具箱使用手册,matlab-Computer Vision System ToolBox的系统对象使用
- python爬虫面试题
- java get null_java 获取对象中为null的字段实例代码
- 《Python编程从入门到实践》记录之类继承
- Civil3D二次开发Cookbook
- 2015职称计算机考试模拟,2015职称计算机考试《Dreamweaver》模拟试题(9)
- 计算机c语言报告册,计算机c语言实验报告.docx
- css样式基础库,WeUI基础样式库
- java 值班管理_​运维告警的值班管理
- iso硬盘安装 凤凰os_多系统下成功硬盘安装phoenix OS
- 什么是侧翼区(flanking region)和侧翼区单核苷酸多态性(Flanking SNPs)
- 可能是讲分布式系统最到位的一篇文章
- 字节跳动 数据分析 一轮技术面
- 【大疆DJI】安卓开发实习历程- 0.前期准备到面试(HR电话初面+技术一面+技术二面/终面+OC)
- Table里td中的文本过长,设置不换行,随内容同行显示
- 案例:爬取豆瓣电影Top250中的电影信息