Android 中各种通知(Notification)的使用

文章目录

  • 通知通道(Channel)
  • 通知重要性级别
  • 创建基本通知
  • 大文本样式通知
  • 带图标样式通知
  • 大图标样式通知
  • 响应用户点击
  • 添加操作按钮
  • 添加直接回复操作
  • 进度条通知
  • 设置分类
  • 设置锁屏下通知可见性
  • 通知导航
  • 自定义通知
    • 自定义通知内容布局
    • 完全自定义通知
  • 通知 Badge
  • 显示、更新通知
  • 取消通知
  • 注意事项
  • 参考文档

通知通道(Channel)

从 Android 8.0 开始,显示通知必须先创建通道:

NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {NotificationChannel notificationChannel = NotificationFactory.createNotificationChannel();notificationManager.createNotificationChannel(notificationChannel);
}
@RequiresApi(api = Build.VERSION_CODES.O)
public static NotificationChannel createNotificationChannel() {String name = "通道名称";// 设置通道的重要性级别(Android 7.1 或更低需要使用 setPriority 方法)int importance = NotificationManager.IMPORTANCE_HIGH;return new NotificationChannel(CHANNEL_ID, name, importance);
}

在构建 Notification Builder 时也需要传入 Channel ID:

new NotificationCompat.Builder(context, CHANNEL_ID)

通知重要性级别

不同场景下的通知,其重要性也可能不同。下表中列出了不同的重要性级别,以及在不同系统版本上设置的方法:

级别importance(Android 8.0 及以上)priority(Android 7.1 及以下)
紧急,发出声音并作为警告通知出现IMPORTANCE_HIGHPRIORITY_HIGH 或者 PRIORITY_MAX
高,发出声音IMPORTANCE_DEFAULTPRIORITY_DEFAULT
中,没有声音IMPORTANCE_LOWPRIORITY_LOW
低,没有声音并且不会出现在状态栏中,并且通知会被折叠IMPORTANCE_MINPRIORITY_MIN

创建基本通知

基本通知包含小图标、标题和少量内容:

// 从 Android8.0 开始,必须设置 Channel ID
new NotificationCompat.Builder(context, CHANNEL_ID).setSmallIcon(icon).setContentTitle(title).setContentText(content)// 设置优先级,优先级决定了 Android7.1 及更低版本通知的侵入程度.setPriority(NotificationCompat.PRIORITY_DEFAULT).build();

大文本样式通知

new NotificationCompat.Builder(context, channelId).setSmallIcon(icon).setContentTitle(title).setContentText(content).setPriority(priority).setStyle(new NotificationCompat.BigTextStyle()).build();

带图标样式通知

new NotificationCompat.Builder(context, channelId).setSmallIcon(icon).setContentTitle(title).setContentText(content).setPriority(priority).setLargeIcon(BitmapFactory.decodeResource(context.getResources(), R.mipmap.ic_launcher)).build();

大图标样式通知

Bitmap iconBitmap = BitmapFactory.decodeResource(context.getResources(), R.mipmap.ic_launcher);
Bitmap avatarBitmap = BitmapFactory.decodeResource(context.getResources(), R.mipmap.ic_avatar);
return new NotificationCompat.Builder(context, channelId).setSmallIcon(icon).setContentTitle(title).setContentText(content).setPriority(priority).setLargeIcon(iconBitmap).setStyle(new NotificationCompat.BigPictureStyle().bigPicture(avatarBitmap)).build();

响应用户点击

可以通过设置 setContentIntent()方法来定义当用户点击通知后所执行操作:

Intent intent = new Intent(context, NotificationDetailActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);
new NotificationCompat.Builder(context, channelId).setSmallIcon(icon).setContentTitle(title).setContentText(content).setPriority(priority)// 点击后自动移除通知.setAutoCancel(true)// 设置点击后响应的 PendingIntent.setContentIntent(pendingIntent).build();

也可以通过 setDeleteIntent()方法设置当用户移除通知后所执行的操作。

另外还可以通过 setFullScreenIntent()方法设置「横幅通知」:

在这里插入图片描述

当通知具有较高的优先级并使用铃声或震动时,也可能会触发「横幅通知」。

该通知用于极高优先级的通知,会直接以横幅的形式显示给用户。如果是普通通知,不建议使用该方法,会打扰到用户。另外实际测试中,发现在某些厂商的定制 Rom,如华为 EMUI,需要在通知设置中打开横幅通知设置才行。另外如果应用定位于 AndroidQ 或以上,需要在 Manifest 中配置 Manifest.permission.USE_FULL_SCREEN_INTENT权限才能使用。

添加操作按钮

通知最多可添加三个按钮,用于快速响应用户的操作。这些按钮点击后的响应操作不应该与用户点击通知所响应的操作一样。

Intent intent = new Intent(context, NotificationDetailActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);Intent intentReceiver = new Intent(context, NotificationReceiver.class);
intentReceiver.setAction(NotificationReceiver.ACTION);
PendingIntent pendingIntentReceiver = PendingIntent.getBroadcast(context, 0, intentReceiver, 0);new NotificationCompat.Builder(context, channelId).setSmallIcon(icon).setContentTitle(title).setContentText(content).setPriority(priority).setContentIntent(pendingIntent)// 添加操作按钮(最多可添加三个).addAction(android.R.drawable.sym_action_chat, "消息", pendingIntentReceiver).build();

显示效果示例:
在这里插入图片描述

添加直接回复操作

从 Android7.0 (API 24)开始,用户可以直接在通知栏回复消息。这对于一些 IM 应用来说很有帮助:

// 创建广播,用于接收并处理用户回复的信息
Intent intent = new Intent(context, HandlerReplyMessageReceiver.class);
intent.setAction(HandlerReplyMessageReceiver.ACTION_HANDLER_REPLY_MESSAGE);// 创建 PaddingIntent
int requestCode = 1; // 这里应该是当前会话 ID
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, requestCode, intent, PendingIntent.FLAG_UPDATE_CURRENT);// 创建 RemoteInput
RemoteInput remoteInput = new RemoteInput.Builder(HandlerReplyMessageReceiver.KEY_REPLY_TEXT).setLabel("回复").build();// 创建 action
NotificationCompat.Action action = new NotificationCompat.Action.Builder(android.R.drawable.sym_action_email, "回复", pendingIntent).addRemoteInput(remoteInput).build();new NotificationCompat.Builder(context, channelId).setSmallIcon(icon).setContentTitle(title).setContentText(content).setPriority(priority).addAction(action).build();

在广播中接收用户消息并处理:

public class HandlerReplyMessageReceiver extends BroadcastReceiver {public static final String ACTION_HANDLER_REPLY_MESSAGE = "action_handler_reply_message";public static final String KEY_REPLY_TEXT = "key_reply_text";@Overridepublic void onReceive(Context context, Intent intent) {if (!ACTION_HANDLER_REPLY_MESSAGE.equals(intent.getAction())) {return;}String replyMessage = getReplyMessage(intent);Log.d(MainActivity.TAG, "回复消息: " + replyMessage);Toast.makeText(context, "回复消息: " + replyMessage, Toast.LENGTH_SHORT).show();// 处理完用户回复的消息后,应更新通知,否则发送按钮会一直转圈MyNotificationManager.getInstance().cancel(7); // 这里的处理是直接不显示该条通知}// 获取用户在通知栏输入的回复消息private String getReplyMessage(Intent intent) {Bundle resultsFromIntent = RemoteInput.getResultsFromIntent(intent);if (resultsFromIntent != null) {return resultsFromIntent.getString(KEY_REPLY_TEXT);}return null;}}

进度条通知

进度条通知可以分为两种,一种是知道确切进度的,一种是不确定进度的。

当知道确切的进度时:

int icon = android.R.drawable.stat_notify_sync;
String title = "有进度的进度条通知";
String content = "当知道确切进度时使用";// 先创建基本的通知
NotificationCompat.Builder builder = new NotificationCompat.Builder(this, CHANNEL_ID).setSmallIcon(icon).setContentTitle(title).setContentText(content).setPriority(NotificationCompat.PRIORITY_LOW);// 应该在非主线程中更新进度,为了演示方便,这里直接新起一个子线程
new Thread(() -> {int max = 100;int progress = 0;while (progress < max) {progress ++;builder.setProgress(max, progress, false);mNotificationManager.notify(8, builder.build());try {Thread.sleep(100);} catch (InterruptedException e) {e.printStackTrace();}}// 执行完毕,删除进度条builder.setContentText("任务执行完毕");builder.setProgress(0, 0, false);mNotificationManager.notify(8, builder.build());
}).start();

不知道确定进度时:

int icon = android.R.drawable.stat_notify_sync;
String title = "不确定的进度条通知";
String content = "当不知道确切进度时使用";// 先创建基本的通知
NotificationCompat.Builder builder = new NotificationCompat.Builder(this, CHANNEL_ID).setSmallIcon(icon).setContentTitle(title).setContentText(content).setPriority(NotificationCompat.PRIORITY_DEFAULT);// 设置为不确定进度
builder.setProgress(0, 0, true);
mNotificationManager.notify(9, builder.build());// 模拟一段时间后任务执行完毕
new Handler().postDelayed(() -> {// 删除进度条builder.setContentText("任务执行完毕");builder.setProgress(0, 0, false);mNotificationManager.notify(9, builder.build());
}, 5000);

设置分类

Android 为通知预置了一些分类。当你的通知设置了重要性较高的分类,那么即使用户设置了「勿扰模式」,用户也能收到通知,避免错过重要消息(实际测试中,没发现设置前后有啥区别,求解惑):

new NotificationCompat.Builder(context, channelId).setSmallIcon(icon).setContentTitle(title).setContentText(content).setPriority(priority).setCategory(category).build();

有以下分类:

  • CATEGORY_ALARM:闹钟或定时器。
  • CATEGORY_CALL:来电(语音或视频)或类似的同步通信请求。
  • CATEGORY_EMAIL:异步批量消息(电子邮件)。
  • CATEGORY_ERROR:后台操作或身份验证状态中的错误。
  • CATEGORY_EVENT:日历事件。
  • CATEGORY_MESSAGE:传入的直接消息(短信,即时消息等)。
  • CATEGORY_NAVIGATION:地图转弯导航。
  • CATEGORY_PROGRESS:长时间运行的后台操作的进度。
  • CATEGORY_PROMO:促销或广告。
  • CATEGORY_RECOMMENDATION:针对单个事物的特定,及时的建议。例如,新闻应用可能想要推荐它认为用户下次要阅读的新闻报道。
  • CATEGORY_REMINDER:用户预定提醒。
  • CATEGORY_SERVICE:运行后台服务的指示。
  • CATEGORY_SOCIAL:社交网络或共享更新。
  • CATEGORY_STATUS:有关设备或上下文状态的持续信息。
  • CATEGORY_SYSTEM:系统或设备状态更新。保留供系统使用。
  • CATEGORY_TRANSPORT:用于播放的媒体传输控制。

设置锁屏下通知可见性

通过 setVisibility()方法可以设置在锁屏下通知的可见性。有三种:

  • VISIBILITY_PUBLIC:显示完整的通知。
  • VISIBILITY_SECRET:在锁定屏幕上不显示通知的任何信息。
  • VISIBILITY_PRIVATE:只显示基本信息,例如通知的图标和内容标题,但隐藏通知内容。
new NotificationCompat.Builder(context, channelId).setSmallIcon(icon).setContentTitle(title).setContentText(content).setPriority(priority).setVisibility(visibility).build();

我在实际测试中,发现无论是使用原生系统(模拟器)还是第三方 ROM 系统。都没有任何效果。是我哪里姿势不对吗?

通知导航

当用户通过通知进入了应用内,此时用户点击返回键,根据场景的不同结果也会不同。可能是直接退出应用,也可能是回到应用主页。

针对这两种情况有不同的实现方式,直接退出应用:

Intent intent = new Intent(context, NotificationDetailActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);

回到主页:

Intent intent = new Intent(context, NotificationDetailActivity.class);TaskStackBuilder taskStackBuilder = TaskStackBuilder.create(context);
// 添加到后退栈中
taskStackBuilder.addParentStack(NotificationDetailActivity.class);
// 添加到堆栈顶部
taskStackBuilder.addNextIntent(intent);PendingIntent pendingIntent = taskStackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);new NotificationCompat.Builder(context, channelId).setSmallIcon(icon).setContentTitle(title).setContentText(content).setPriority(priority).setStyle(new NotificationCompat.BigTextStyle()).setContentIntent(pendingIntent).build();

manifest中需要配置 parentActivityName

<activityandroid:name=".activity.NotificationDetailActivity"android:parentActivityName=".activity.MainActivity"/>

实际测试中发现,回到首页该方法在个别手机上会无效。因此最好不要完全依赖该方法。

自定义通知

通知的内容高度,普通通知限制为 64dp,扩展通知限制为 256dp。

自定义通知内容布局

RemoteViews smallRemoteViews = new RemoteViews(context.getPackageName(), R.layout.notification_small);
smallRemoteViews.setTextViewText(R.id.notification_title, title);Intent intent = new Intent(context, NotificationDetailActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);
smallRemoteViews.setOnClickPendingIntent(R.id.notification_btn, pendingIntent);new NotificationCompat.Builder(context, channelId).setSmallIcon(icon).setPriority(priority).setStyle(new NotificationCompat.DecoratedCustomViewStyle()).setCustomContentView(smallRemoteViews).build();

布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:gravity="center"><TextViewandroid:id="@+id/notification_title"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"tools:text="标题"style="@style/TextAppearance.Compat.Notification.Title"/><Buttonandroid:id="@+id/notification_btn"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Button"/></LinearLayout>

注意:由于在不同的设备上,通知的背景都可能会不同。为了避免文字颜色与背景颜色相似导致看不清文字,最好如上面示例中一样,使用系统中的 style 样式。系统还有其他的 notification style,大家可以试一试。

运行效果:
在这里插入图片描述

完全自定义通知

RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.notification_big);
remoteViews.setTextViewText(R.id.notification, content);new NotificationCompat.Builder(context, channelId).setSmallIcon(icon).setPriority(priority).setCustomBigContentView(remoteViews).build();
<?xml version="1.0" encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:gravity="center_vertical"android:padding="16dp"><TextViewandroid:id="@+id/notification"android:layout_width="match_parent"android:layout_height="wrap_content"tools:text="内容"style="@style/TextAppearance.Compat.Notification.Info"/></LinearLayout>

在这里插入图片描述

通知 Badge

官方文档上说 8.0 开始,显示通知时可以同时显示 Badge。但我实际测试结果发现,只在原生系统上有效。国内厂商应该是都没有实现,比如在华为手机上就没有 Badge,想显示 Badge 只能用华为自己提供的 API 实现。所以说该功能比较鸡肋,暂时不谈,看以后都兼容了再说吧。

显示、更新通知

显示和更新通知都使用的是 notify()方法:

notify(int id, @NonNull Notification notification)

更新时只需要保证 id 相同即可。

通过 setOnlyAlertOnce()方法可以设置只在第一次时提醒,更新时不再发出声音和震动。

需要注意的是,不要太频繁的更新,比如说一秒内多次,系统可能会删除一些更新。

取消通知

应用主动取消通知有以下方法:

  • cancel():取消指定 ID 的通知。
  • cancelAll():取消当前应用所有显示的通知。
  • setTimeoutAfter():在指定的时间后取消通知。

注意事项

  • 从 Android 8.1 开始,如果在 1 秒内发送了多个通知,那么通知提醒音只会响一次。

参考文档

  • https://developer.android.google.cn/guide/topics/ui/notifiers/notifications?hl=zh-cn

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/24641.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android发送通知——通知栏(Notification)

Android发送通知——通知栏(Notification) 通知是指 Android 在您应用的界面之外显示的消息&#xff0c;旨在向用户提供提醒、来自他人的通信信息或您应用中的其他实时信息。在发出一条通知后&#xff0c;手机最上方的状态栏会显示一个通知的图标&#xff0c;下拉状态栏后就可…

Android Notification通知使用(从基本到高级)

目录 一、通知的基本使用 (1)、效果图 (2)、使用步骤 (3)、细节使用 二、通知的进阶使用 (1)、设置声音 (2)、设置振动 (3)、设置LED灯闪烁 (4)、进行默认效果设置 三、通知的高级使用 (1)、设置富文本信息 (2)、设置带有图片消息 (3)、设置通知重要程度 一、通知…

聚观早报 |ChatGPT之父称AI可能灭绝人类;Kindle本月关闭电子书店

今日要闻&#xff1a;马斯克到访特斯拉上海超级工厂&#xff1b;ChatGPT之父称AI可能灭绝人类&#xff1b;Kindle本月关闭电子书店&#xff1b;FF91将进入交付阶段&#xff1b;iPhone14最高降1900元 马斯克到访特斯拉上海超级工厂 6 月 1 日消息&#xff0c;据航班APP信息显示…

02.25 Chat Servers Outgoing Traffic聊天服务流量输出

聊天服务器传出流量|断续器 (jxnu.edu.cn)https://acs.jxnu.edu.cn/problem/CF5A 描述&#xff1a; Polycarp is working on a new project called "Polychat". Following modern tendencies in IT, he decided, that this project should contain chat as well. To…

聊天时为什么配置了打开半截微型聊天窗不显示半截呢?

问&#xff1a;什么是半截微型聊天窗呢&#xff1f; 回答&#xff1a;当你和某人聊天的时候&#xff0c;弹出的窗口&#xff0c;然后一起聊天&#xff0c;就是聊天窗口。这里的半截微型聊天窗口指&#xff0c;显示的时候&#xff0c;聊天半截微型聊天窗就是小窗口聊天&#xff…

数据中台实践指南(1.0版)

❑ 导 读 数据中台的建设前提条件是有可以让数据产生价值的业务场景。 全文共计1353字&#xff0c;预计阅读时间8分钟 来源 | CCSA TC601 大数据技术标准推进委员会 编辑 | 蒲蒲 近日&#xff0c;由大数据技术标准推进委员会指导和组织&#xff0c;阿里云、中国移动、中国联…

心法利器[87] | 填志愿:AI算法方向过来人的建议

心法利器 本栏目主要和大家一起讨论近期自己学习的心得和体会&#xff0c;与大家一起成长。具体介绍&#xff1a;仓颉专项&#xff1a;飞机大炮我都会&#xff0c;利器心法我还有。 2022年新一版的文章合集已经发布&#xff0c;累计已经60w字了&#xff0c;获取方式看这里&…

用ChatGPT快速搞定开发、测试、运维实战教程来了,一点代码都不用写!

《面向ChatGPT全栈开发实战》专栏上线了&#xff0c;写这个专栏的过程中&#xff0c;我真有点恐慌&#xff0c;感觉我得失业&#xff0c;因为ChatGPT实在太牛逼了。 注意&#xff1a;由于账号越来难注册&#xff0c;仅限前200名送ChatGPT独立账号&#xff0c;没有的抓紧了。 Ch…

论文辅助工具

1.微信小程序–写作蛙 2.秘塔写作猫 https://xiezuocat.com 3.ChatGPT

谷歌要完,百度也危了

文 | 天于刀刀 当我们在抱怨搜索引擎的时候我们具体在说些什么&#xff1f; 也许是饱受诟病的广告&#xff1f;或者是不合理的网页排序&#xff1f;又或是一种最直观的感觉——不好使。 但是从来没有人抱怨过搜索引擎这一个模式。 尽管这些年&#xff0c;也诞生一些诸如Magi这样…

软件工程 案例分析作业——Inscode

软件工程实践——软件评测 课题A&#xff09;Inscode - coding with inspiration这个作业要求在哪里软件工程 案例分析作业这个作业的目标完成软件调研评测、软件分析、针对软件提出建议和规划其他参考文献《构建之法》 文章目录 软件工程实践——软件评测第〇部分 BUG量化标准…

作为一个 IT 行业的学生或从业者,遇到问题我们应该去哪里寻找答案呢?

现阶段IT行业最受欢迎的网站 一、CSDN开发者互助问答社区_程序员有问必答-CSDN问答1、网站地址2、功能展示1. 问答界面2. 优点3. 缺点4. 问题回复时间 二 、Stack Overflow1、网站地址2、功能展示1. 问答界面2. 优点3. 缺点4. 问题回复时间 三、SegmentFault 思否1、网站地址2、…

孤独患者的树洞?AI情感陪伴是如何实现的?

一、人工智能大模型 自ChatGPT发布以来&#xff0c;越来越多的中国企业和研究机构扎堆冲入AI大模型赛道&#xff0c;试图在自然语言处理、机器翻译、问答等方面取得重大突破。在未来&#xff0c;这些模型有机会应用于金融、医疗、电商等各领域。 人工智能大模型的应用不仅可以…

面向新手的git实战教程

嗨&#xff01;我是团子&#xff0c;大家好久不见呀~ 记得之前在网上学习git相关知识时&#xff0c;看到的文章大部分都是讲解git的基本命令有哪些&#xff0c;用处是什么&#xff0c;但是自己真正上手使用git时&#xff0c;仍然无从下手。 所以今天就想从初始化一个git仓库开始…

ChatGPT提示词工程师教程-指南

参考视频&#xff1a;chatGPT提示词工程进阶教学 | 第二期&#xff1a;如何更清晰、更具体地书写提示词 (Lesson02 guidelines)_哔哩哔哩_bilibili 本篇主要提出两个原则&#xff1a;如何更清晰、具体地书写提示词&#xff1b;给模型充足的思考时间。 原则1&#xff1a;如何更…

从0到1,入门到进阶玩转AI——Stable Diffusion超详细教程(一)

前沿 目前市面上的AI主要集中在两方面&#xff0c;一方面是AI 作图&#xff08;代表产品&#xff1a;Midjourney和Stable-Diffusion&#xff09;&#xff0c;一方面是AI应答&#xff08;代表产品&#xff1a;ChatGPT&#xff09;&#xff0c;本文主要针对AI作图进行探索。 由于…

nvm安装步骤

注意事项&#xff1a; 1、不能安装任何node版本&#xff08;如存在请删除后安装nvm&#xff09;; 安装步骤&#xff1a; 1、下载nvm 解压后点击exe文件进行安装&#xff1a; &#xff08;1&#xff09;同意相关协议内容&#xff1a; 2、点击下一步安装到 D:\NVM 下 3、创建nod…

【自然语言处理】【ChatGPT系列】WebGPT:基于人类反馈的浏览器辅助问答

WebGPT: 基于人类反馈的浏览器辅助问答 《WebGPT: Browser-assisted question-answering with human feedback》 论文地址&#xff1a;https://arxiv.org/pdf/2112.09332.pdf 相关博客 【自然语言处理】【大模型】BLOOM&#xff1a;一个176B参数且可开放获取的多语言模型 【自然…

解决华为手机破解巧影软件无法使用

原文地址&#xff1a;https://blog.csdn.net/dx147305114/article/details/87863052 本次解决的是部分巧影破解软件的问题&#xff0c;在网上看了很多都是关于华为手机无法使用破解巧影的问题&#xff0c;整理了一下解决方案&#xff0c;供大家参考。 1、使用的破解巧影版本 …

华为服务器rh-2286远程控制无法使用

前言 "都是废话“ 在咸鱼购买的华为服务器rh2286&#xff0c;功耗太大没怎么用&#xff0c;在家闲置&#xff0c;上个月去用下发现远程控制功能不能使用&#xff0c;这不难受坏啊&#xff0c;我可不想在机房给这东西装系统&#xff0c;嗡嗡的吵得脑袋都疼&#xff0c;因型…