当前位置: 首页 > news >正文

【安卓】连接真机和使用通知

文章目录

      • 连接到真机
      • 使用通知
        • 通知的简单使用
        • 通知的详细信息

连接到真机

  先用USB线将手机与电脑连接。

  打开手机的设置,找到关于手机,点开之后,找到开发者选项界面。或者找到软件版本号,连续点击,系统会提示你点击几次能够打开开发者模式。

   然后就可以在Android studio顶部找到自己的真机运行就行了。

在这里插入图片描述

使用通知

通知的简单使用

  每条通知都要属于一个对应的渠道。每个应用程序都可以自由地创建当前应用拥有哪些通知渠道,但是这些通知渠道的控制权是掌握在用户手上的。用户可以自由地选择这些通知渠道的重要程度,是否响铃、是否振动或者是否要关闭这个渠道的通知。

  通知的重要等级主要有IMPORTANCE_HIGH、IMPORTANCE_DEFAULT、IMPORTANCE_LOW、IMPORTANCE_MIN这几种,对应的重要程度依次从高到低。

  修改activity_main.xml文件。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent"><Buttonandroid:id="@+id/sendNotice"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Send Notice" />
</LinearLayout>

  修改MainActivity.java文件。

public class MainActivity extends AppCompatActivity implements View.OnClickListener{@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button sendNotice = (Button) findViewById(R.id.sendNotice);sendNotice.setOnClickListener(this);}@Overridepublic void onClick(View v){NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {NotificationChannel channel = new NotificationChannel("normal", "Normal", NotificationManager.IMPORTANCE_DEFAULT);manager.createNotificationChannel(channel);}NotificationCompat.Builder builder = new NotificationCompat.Builder(this, "normal").setContentTitle("This is content title").setContentText("This is content text").setSmallIcon(R.mipmap.ic_launcher).setLargeIcon(BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher));Notification notification = builder.build();manager.notify(1, notification);}
}

在这里插入图片描述

通知的详细信息

  实现通知的点击效果需要使用PendingIntent,它主要提供了几个静态方法用于获取PendingIntent的实例,可以根据需求来选择是使用getActivity()方法、getBroadcast()方法,还是getService()方法。这几个方法所接收的参数都是相同的:第一个参数是Context;第二个参数一般用不到,传入0即可;第三个参数是一个Intent对象。第四个参数用于确定PendingIntent的行为,有FLAG_ONE_SHOT、FLAG_NO_CREATE、FLAG_CANCEL_CURRENT和FLAG_UPDATE_CURRENT这4种值可选,通常情况下这个参数传入0就可以了。

  新建一个活动NotificationActivity,修改布局文件。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent" ><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerInParent="true"android:textSize="24sp"android:text="This is notification layout"/>
</RelativeLayout>

  修改MainActivity.java文件。

public class MainActivity extends AppCompatActivity implements View.OnClickListener{@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button sendNotice = (Button) findViewById(R.id.sendNotice);sendNotice.setOnClickListener(this);}@Overridepublic void onClick(View v){Intent intent = new Intent(this, NotificationActivity.class);PendingIntent pi = PendingIntent.getActivity(this, 0, intent, 0);NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {NotificationChannel channel = new NotificationChannel("normal", "Normal", NotificationManager.IMPORTANCE_DEFAULT);manager.createNotificationChannel(channel);}NotificationCompat.Builder builder = new NotificationCompat.Builder(this, "normal").setContentTitle("This is content title").setContentText("This is content text").setSmallIcon(R.mipmap.ic_launcher).setContentIntent(pi).setLargeIcon(BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher));Notification notification = builder.build();manager.notify(1, notification);}
}

在这里插入图片描述

相关文章:

【安卓】连接真机和使用通知

文章目录 连接到真机使用通知通知的简单使用通知的详细信息 连接到真机 先用USB线将手机与电脑连接。 打开手机的设置&#xff0c;找到关于手机&#xff0c;点开之后&#xff0c;找到开发者选项界面。或者找到软件版本号&#xff0c;连续点击&#xff0c;系统会提示你点击几次能…...

CSS3下拉菜单实现

导航菜单&#xff1a; <nav class"multi_drop_menu"><!-- 一级开始 --><ul><li><a href"#">Power</a></li><li><a href"#">Money</a></li><li><a href"#"…...

Mysql8.3.0排序导致分页数据错乱

#业务场景 生产环境 仓库管理&#xff0c;能看到各个仓库的C库位 物料管理&#xff0c;编辑物料&#xff0c;弹框时选择库位时&#xff0c;7页数据&#xff0c;没有C库位&#xff0c;查询条件指定C&#xff0c;能查到数据 本地环境 数据还原到本地 弹框数据在2页与第3页看…...

漏洞复现-Cacti命令执行漏洞 (CVE-2022-46169)

1.漏洞描述 Cacti是一套基于PHP&#xff0c;MySQL&#xff0c;SNMP及RRDTool开发的网络流量监测图形分析工具&#xff0c;可为用户提供强大且可扩展的操作监控和故障管理框架。 该漏洞存在于remote_agent.php文件中&#xff0c;未经身份验证的恶意攻击者可以通过设置HTTP_变量…...

【Ajax使用说明】Ajax、Axios以及跨域

目录 一、原生Ajax 1.1 Ajax简介 1.2 XML简介 1.3 AJAX 的特点 1.3.1 AJAX的优点 1.3.2 AJAX 的缺点 1.4 AJAX 的使用 1.4.1AJAX的基本操作 1.4.2AJAX的传参 1.4.3 AJAX的post请求及设置请求体 1.4.4 AJAX响应json数据 1.4.5 AJAX请求超时与网络异常处理 1.4.5 AJ…...

IIS网站搬家工具WebDeploy(把网站迁移去另一台服务器)

如果不能克隆镜像&#xff0c;又想快速迁移&#xff0c;请保证新服务器和原服务器的文件目录结构一致&#xff0c;各种程序的安装路径一致&#xff0c;包括python的安装路径、mysql的秘密 防火墙设置等 网站迁移去另一台服务器&#xff0c;如果重新设置IIS&#xff0c;还是有…...

SQL Server 2022的游标

《SQL Server 2022从入门到精通&#xff08;视频教学超值版&#xff09;》图书介绍-CSDN博客 《SQL Server 2022从入门到精通&#xff08;视频教学超值版&#xff09;&#xff08;数据库技术丛书&#xff09;》(王英英)【摘要 书评 试读】- 京东图书 (jd.com) 游标是SQL Serv…...

「11月·香港」第三届人工智能、人机交互和机器人国际学术会议(AIHCIR 2024)

第三届人工智能、人机交互和机器人国际学术会议&#xff08;AIHCIR 2024&#xff09;组委会热忱地邀请您参与本届大会。本届大会旨在聚集领先的科学家、研究人员和学者&#xff0c;共同交流和分享在人工智能、人机交互和机器人各个方面的经验和研究成果&#xff0c;为研究人员、…...

【redis】springboot 用redis stream实现MQ消息队列 考虑异常ack重试场景

redis stream是redis5引入的特性&#xff0c;一定程度上借鉴了kafka等MQ的设计&#xff0c;部署的redis版本必须 > 5 本文主要讲的是思路&#xff0c;结合简单的源码分析&#xff08;放心&#xff0c;无需深入大量源码&#xff09;&#xff1b;讲述在redis stream文档缺乏&a…...

初识IDEA

一、IDEA简介 IDEA 全称 IntelliJ IDEA&#xff0c;是 JAVA编程语言开发的集成环境。IntelliJ 在业界被公认为最好的 java开发⼯具 之⼀&#xff0c;尤其在智能代码助⼿、代码⾃动提示、重构、J2EE⽀持、Ant、JUnit、CVS整合、代码审 查⽅⾯。 JetBrains官⽹ : JetBrains: Esse…...

zigbee笔记:十、ZStack(2.3.0-1.4.0)的OSAL使用分析

zigbee笔记&#xff1a;九中&#xff0c;我们已经学会了利用模板&#xff0c;定制自己的个性开发工程&#xff0c;本文为协议栈&#xff08;ZStack-CC2530-2.3.0-1.4.0&#xff09;代码使用分析笔记&#xff0c;来进一步掌握协议栈的使用。 一、协议栈使用知识点 1、协调器、路…...

SpringBoot响应式编程(1)Reactor核心

一、概述 1.1介绍 Reactor 是一个用于JVM的完全非阻塞的响应式编程框架&#xff0c;Webflux 底层使用的也是该框架&#xff0c;其通过流的方式实现了异步相应&#xff0c;具备高效的需求管理&#xff08;即对 “背压&#xff08;backpressure&#xff09;”的控制&#xff09…...

Java后端处理前端字符串与 JSON 数据:安全拼接与转义技巧

在现代 Web 开发中&#xff0c;前后端数据交互是家常便饭。我们经常需要处理前端传递的字符串和 JSON 数据&#xff0c;并在后端进行加工处理后发送到其他服务。本文将以 Spring Boot 为例&#xff0c;探讨如何安全地拼接字符串和 JSON 数据&#xff0c;并介绍如何避免 JSON 特…...

一文搞懂bfs,dfs和高级图算法

你以为BFS&#xff08;广度优先搜索&#xff09;和DFS&#xff08;深度优先搜索&#xff09;这两种基础算法&#xff0c;简单到小学数学就能搞定&#xff1f;但真的是这样吗&#xff1f;很多人都这么认为&#xff0c;但真的对吗&#xff1f;今天&#xff0c;我们不只是走马观花…...

【Rust光年纪】Rust异步编程利器:异步DNS、高性能Web服务器一网打尽

构建高效网络应用必备&#xff1a;解读Rust异步编程神器 前言 Rust 是一种快速流行的系统编程语言&#xff0c;它以其内存安全和并发性能而闻名。在 Rust 生态系统中&#xff0c;有许多优秀的库和框架可以帮助开发者构建高性能、可靠的应用程序。本文将介绍几个在 Rust 中备受…...

04学生管理系统(栈)

文章目录 预处理菜单结构体主函数函数声明栈操作功能实现 预处理 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #include<windows.h> #include<conio.h>#define OVERFLOW -2 #define FALSE 0 #define TRUE 1 #define OK 1 …...

我们如何在centos上部署批量管理工具ansible

1&#xff09;我们先准备环境、设备 #我们准备一台服务机 &#xff08;192.168.61.140&#xff09; ​#然后准备几天客户机&#xff08;192.168.61.141 192.168.61.142&#xff09;这里我们准备两台2)然后我们在客服务机里面添加域名 vi /etc/hosts ​ #添加如下内容 192.…...

如何评估前端代码审查培训计划的有效性?

评估前端代码审查培训计划的有效性可以通过以下方法&#xff1a; 培训前后测试&#xff1a; 在培训前后对学员进行测试&#xff0c;比较结果以评估知识增长。 学员反馈&#xff1a; 通过问卷调查、访谈或开放式反馈收集学员对培训内容、方式和效果的看法。 参与度&#xff1a…...

使用nvm切换Node.js版本

一、安装nvm nvm&#xff08;Node Version Manager&#xff09;是一个用于管理Node.js版本的工具&#xff0c;它允许你在同一台机器上安装和切换多个Node.js版本。 1.安装nvm https://github.com/coreybutler/nvm-windows 访问以上链接到github去下载 点击releases 下载下图…...

x264 编码器 PSNR算法源码分析

PSNR PSNR(Peak Signal-to-Noise Ratio,峰值信噪比)是一种常用的图像质量评价指标,用于衡量图像或视频的清晰度和质量。PSNR是基于信号的最大可能功率与影响信号的噪声功率之间的比率。在图像处理领域,PSNR通常用来评估图像压缩或图像增强算法的效果。 PSNR的计算公式是…...

C语言整数字节拆解:联合体与移位操作详解

1. 理解题目&#xff1a;整数字节拆解的核心需求 在嵌入式开发和底层系统编程中&#xff0c;处理多字节数据是家常便饭。就拿这个面试题来说&#xff0c;我们需要从32位无符号整数0x12345678中提取出它的四个独立字节。这看似简单的需求背后&#xff0c;其实涉及到计算机系统中…...

SoftSerial软件串口原理与STM32工程实践

1. SoftSerial 库深度解析&#xff1a;面向资源受限 MCU 的软件 UART 实现原理与工程实践1.1 背景与工程必要性在嵌入式系统开发中&#xff0c;UART&#xff08;通用异步收发传输器&#xff09;是最基础、最广泛使用的串行通信接口。然而&#xff0c;MCU 的硬件 UART 资源往往极…...

基于S7-200控制的自动洗车系统 本设计包括设计报告,PLC组态仿真,I/O接口,带注释程序...

基于S7-200控制的自动洗车系统 本设计包括设计报告&#xff0c;PLC组态仿真&#xff0c;I/O接口&#xff0c;带注释程序pdf版&#xff0c;接线图&#xff0c;控制电路图&#xff0c;主电路图,PLC接线图&#xff0c;顺序功能图 总体设计 系统有自动和手动模式&#xff0c;选择手…...

表格设计:结构与美感并重

1. 表格的结构如果把表格比作一座建筑&#xff0c;那么它的每个结构部件都承担着特定功能。下面是一个完整的表格示例&#xff0c;展示了所有标准结构组件&#xff1a;表格结构图解&#xff1a;标题与副标题&#xff1a;表格的"名字"和"简介"&#xff0c;告…...

DBSCAN vs K-means:5个真实数据集对比,教你选对聚类算法

DBSCAN与K-means实战对比&#xff1a;5个真实数据集下的算法选择指南 第一次接触聚类分析时&#xff0c;我被一个简单问题困扰&#xff1a;为什么同样的数据用不同算法会得到截然不同的分组结果&#xff1f;记得当时用K-means处理地理坐标数据&#xff0c;结果把绵延的海岸线硬…...

带你读顶会论文丨基于溯源图的APT攻击检测

带你读顶会论文丨基于溯源图的APT攻击检测 **摘要&#xff1a;**本次分享主要是作者对APT攻击部分顶会论文阅读的阶段性总结&#xff0c;将从四个方面开展。 本文分享自华为云社区《[论文阅读] (10)基于溯源图的APT攻击检测安全顶会总结》&#xff0c;作者&#xff1a;eastmoun…...

服务器速度很慢

表现&#xff1a;20K/s ssh有时候能打开&#xff0c;有时候打不开结果&#xff1a;没有交话费&#xff0c;欠费。解决方式&#xff1a;充值200元现在能打开了&#xff0c;另外添加了一个参数&#xff1a;ProxyPreserveHost off但是很可能没用&#xff0c;因为我一开始直接访问…...

华为eNSP防火墙GRE over IPSec保姆级排错指南:从隧道起不来、加密失败到稳定通信

华为eNSP防火墙GRE over IPSec实战排错手册&#xff1a;从零排查到稳定通信 当你在华为eNSP环境中搭建GRE over IPSec隧道时&#xff0c;是否遇到过隧道死活起不来、加密协商失败或者路由莫名其妙的消失&#xff1f;这篇文章将带你走进真实排错现场&#xff0c;用工程师的视角一…...

GitHub被封杀后:开源难民在区块链的逃亡

对于全球软件开发者而言&#xff0c;GitHub不仅是代码仓库&#xff0c;更是数字时代的公共广场与精神家园。然而&#xff0c;近年来一系列地缘政治风波与技术壁垒&#xff0c;使得这片曾经自由的土地不断竖起高墙。从伊朗、俄罗斯开发者账号的全面封禁&#xff0c;到针对特定IP…...

国家中小学智慧教育平台电子课本PDF下载工具:教育资源的智能获取方案

国家中小学智慧教育平台电子课本PDF下载工具&#xff1a;教育资源的智能获取方案 【免费下载链接】tchMaterial-parser 国家中小学智慧教育平台 电子课本下载工具&#xff0c;帮助您从智慧教育平台中获取电子课本的 PDF 文件网址并进行下载&#xff0c;让您更方便地获取课本内容…...