unity android本地推送,Unity安卓本地推送
https://blog.csdn.net/macaopark/article/details/69053691
新建推送脚本: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 channels = new HashSet();
private NotificationManager manager;
@Override
public 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("currentActivity");
jo.Call("AndroidNotification");
Debug.Log("android 通知功能=======");
}
//android 清空推送
public void ClearNotifications()
{
AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject jo = jc.GetStatic("currentActivity");
jo.Call("ClearShowing");
Debug.Log("android 清空通知功能=======");
}
unity android本地推送,Unity安卓本地推送相关推荐
- unity android视频录制sdk,Unity中保存EveryPlay录制视频到本地的解决方案
五月 14.2018. 0 Comment 在Unity中使用EveryPlay录制视频时,有如下问题: 1. EveryPlay API(截止到现在,之后Final Version可能会增加)不支持 ...
- unity android模糊ios清晰,Unity NGUI UI 在iOS端的锯齿、模糊、颗粒感问题
一般我们在Unity项目中,都是美术给到图片,然后程序直接导入Unity,Android端给图片设置为 RBGA Compressed ETC2 8bit,iOS端给图片设置为 RBGA Compre ...
- unity android ndk的作用,Unity中编写Android下使用的so插件
四月 24.2019. 0 Comment 在android上编写插件有多种路子: 1. c# portable library,用c#写的可移植的assembly.使用起来最简单.最方便,比如那些j ...
- Unity Android(七) Unity Android10读写权限
PS:Android10读取权限发生了变化,即使应用权限里有读写权限可能也无法进行读写,主要是 需要 android:requestLegacyExternalStorage="true&q ...
- android 耳机数据线,如果买安卓手机不送充电器和耳机?你还买不买
[PConline 聚超值] 一年一度的苹果 iPhone 12 爆料期又开始了, 今年硬件没什么惊喜,不过销售策略倒是引起了热议,因为出于控制成本的考虑,苹果可能不再赠送充电器及耳机,虽然苹果的原装 ...
- 安卓统一推送联盟,终于有消息了,统一推送时间表出炉
[回复"1024",送你一个特别推送] 安卓统一推送联盟,自去年 7 月份被曝光,成立以来,只有刚刚成立时,引起了巨大的轰动,轰动的背后也一起了大家的反思或者质疑,感觉这个推送联盟 ...
- 关于Android安卓APP保活 - 安卓消息推送详解 - 安卓端外推送离线推送
转自:http://zhangtielei.com/posts/blog-android-push.html 说Android端外推送比较烦,实际有两层意思:首先是说实现上比较麻烦,至今业界也没有找到 ...
- uniapp使用unipush推送及java后台推送代码(含本地打包apk使用unipush推送)
你懂的,又是项目用到了,作为程序猿义无反顾需要定时 "进化" ,硬头皮去写,虽然曾经作为android开发者写了很多的推送,但是uniapp的推送也是有所差异的,记录一下,以后留用 ...
- Unity环境下实现Camera高帧率RTMP推送
Unity下RTMP直播背景方面不再赘述,今天主要讨论的是,Unity环境下,如何实现Camera高帧率RTMP推送,这里提到的高帧率,不再局限于常规环境下的30帧,以VR头显为例,更高的帧率(比如5 ...
- Unity安卓游戏开发:打造7款2D 3D游戏 Unity Android Game Development : Build 7 2D 3D Games
流派:电子学习| MP4 |视频:h264,1280×720 |音频:AAC,44.1 KHz 语言:英语+中英文字幕(根据原英文字幕机译更准确) |大小:15.4 GB |时长:32h 55m Un ...
最新文章
- 那些轻轻拍了拍Attention的后浪们
- MySQL xtrabackup之--databases 勿手贱
- 6 HBase java API访问HBase数据库
- QT的QMenuBar类的使用
- (原创)优酷androidclient 下载中 bug 解决
- 第七章:在Spark集群上使用文件中的数据加载成为graph并进行操作(3)
- python使用python-docx导出word
- android tablelayout 点击,Android Design之TableLayout选项卡
- thinkphp怎么设置输入网址直接进入首页
- java int 位_java int是几位
- ngrinder安装
- Linux系统管理——账号管理与权限及归属管理实例
- 软件测试是做什么的?具体工作内容?
- endnote修改正文中参考文献标注_如何用endnote修改毕业论文后参考文献格式为毕业手册要求格式...
- 陈佩斯曾受邀喜剧综艺:被酬劳吓的恍惚好几天
- Android多维商品属性SKU选择
- 海康SDK的NET_DVR_GET_FTPCFG_V40
- 2023年最热门的网络安全岗位分析
- css3地球自转,CSS3 月亮围绕地球转动的3D动画
- python eel vue_VU - OSCHINA