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

鸿蒙harmonyos next flutter通信之MethodChannel获取设备信息

        本文将通过MethodChannel获取设备信息,以此来演练MethodChannel用法。

  • 建立channel

        flutter代码:

MethodChannel methodChannel = MethodChannel("com.xmg.test");

        ohos代码:

private channel: MethodChannel | null = nullthis.channel = new MethodChannel(flutterEngine.dartExecutor.getBinaryMessenger(), 'com.xmg.test')this.channel.setMethodCallHandler({onMethodCall(call: MethodCall, result: MethodResult): void {switch (call.method) {case 'getDeviceInfo':result.success(deviceInfo.displayVersion);break;default:result.notImplementedbreak;}}});

注意:channelName必须一致。这里都叫com.xmg.test

  • flutter侧调用
    void _getDeviceInfo() async{deviceInfo = await methodChannel.invokeMethod('getDeviceInfo');setState(() {});}

  • 完整代码

        flutter完整代码:

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';void main() {runApp(const MyApp());
}class MyApp extends StatelessWidget {const MyApp({super.key});@overrideWidget build(BuildContext context) {return MaterialApp(title: 'Flutter Demo',theme: ThemeData(primarySwatch: Colors.blue,),home: const MyHomePage(title: 'MethodChannel获取设备信息'),);}
}class MyHomePage extends StatefulWidget {const MyHomePage({super.key, required this.title});final String title;@overrideState<MyHomePage> createState() => _MyHomePageState();
}class _MyHomePageState extends State<MyHomePage> {MethodChannel methodChannel = MethodChannel("com.xmg.test");String deviceInfo = "";void _getDeviceInfo() async{deviceInfo = await methodChannel.invokeMethod('getDeviceInfo');setState(() {});}@overrideWidget build(BuildContext context) {return Scaffold(appBar: AppBar(title: Text(widget.title),),body: Center(child: Column(mainAxisAlignment: MainAxisAlignment.center,children: <Widget>[Text(deviceInfo,),ElevatedButton(onPressed: () {_getDeviceInfo();}, child: Text("获取设备版本号"))],),),);}
}

        ohos完整代码:

import { FlutterAbility, FlutterEngine, MethodCall, MethodChannel, MethodResult } from '@ohos/flutter_ohos';
import { GeneratedPluginRegistrant } from '../plugins/GeneratedPluginRegistrant';
import deviceInfo from '@ohos.deviceInfo'export default class EntryAbility extends FlutterAbility {private channel: MethodChannel | null = nullconfigureFlutterEngine(flutterEngine: FlutterEngine) {super.configureFlutterEngine(flutterEngine)GeneratedPluginRegistrant.registerWith(flutterEngine)this.channel = new MethodChannel(flutterEngine.dartExecutor.getBinaryMessenger(), 'com.xmg.test')this.channel.setMethodCallHandler({onMethodCall(call: MethodCall, result: MethodResult): void {switch (call.method) {case 'getDeviceInfo':result.success(deviceInfo.displayVersion);break;default:result.notImplementedbreak;}}});}
}
  • 效果展示

相关文章:

鸿蒙harmonyos next flutter通信之MethodChannel获取设备信息

本文将通过MethodChannel获取设备信息&#xff0c;以此来演练MethodChannel用法。 建立channel flutter代码&#xff1a; MethodChannel methodChannel MethodChannel("com.xmg.test"); ohos代码&#xff1a; private channel: MethodChannel | null nullthis.c…...

【笔记】原子结构的近代理论

近代原子结构理论的建立是从氢原子光谱得到启示的。 一、氢原子光谱与波尔理论 1.氢原子光谱 在装有两个电极的真空玻璃管内通入极少量高纯氢气&#xff0c;通高压电使之放电&#xff0c;管中发出的光束通过分光棱镜&#xff0c;得到分立的谱线&#xff0c;称为线状光谱。 发…...

【python】循环中断:break 和 continue

目录&#xff1a; while 循环的基础语法while 循环的基础案例while 循环的嵌套应用while 循环的嵌套案例for 循环的基础语法for 循环的嵌套应用循环中断&#xff1a;break 和 continue综合案例 学习目标&#xff1a; 掌握使用 continue 和 break 关键字控制循环 思考&#…...

WIFI密码默认显示

文章目录 需求分析遇到问题问题原因解决方案 需求 在进入设置&#xff0c;点击某一个wifi,连接wifi 界面&#xff0c;显示密码默认选中状态&#xff0c;效果如下 分析 在 WiFi密码被输入法挡住 中我们已经分析了整个流程&#xff0c;布局文件和控制中心。 结局系统设置WIFI连…...

Emiya 家今天的饭C++

题目&#xff1a; 样例解释&#xff1a; 【样例 1 解释】 由于在这个样例中&#xff0c;对于每组 i,j&#xff0c;Emiya 都最多只会做一道菜&#xff0c;因此我们直接通过给出烹饪方法、主要食材的编号来描述一道菜。 符合要求的方案包括&#xff1a; 做一道用烹饪方法 1、主要…...

Mybatis缓存机制(图文并茂!)

目录 一级缓存 需求我们在一个测试中通过ID两次查询Monster表中的信息。 二级缓存 案例分许(和上述一样的需求) EhCache第三方缓存 在了解缓存机制之前&#xff0c;我们要先了解什么是缓存&#xff1a; ‌缓存是一种高速存储器&#xff0c;用于暂时存储访问频繁的数据&…...

Git 工作区、暂存区和版本库

Git 工作区、暂存区和版本库 Git 是一个强大的版本控制系统&#xff0c;它帮助开发者管理代码历史&#xff0c;协作开发&#xff0c;以及跟踪和合并更改。为了更好地理解 Git 的工作流程&#xff0c;我们需要了解 Git 中的三个核心概念&#xff1a;工作区&#xff08;Workspac…...

SSH 远程连接到 Linux 服务器上的 SQLite

通过 SSH 远程连接到 Linux 服务器上的 SQLite 数据库文件的流程&#xff0c;可以分为以下几个步骤&#xff1a; 通过 SSH 连接到远程 Linux 服务器。在远程服务器上执行 SQLite 命令行工具&#xff0c;操作数据库文件。在本地使用工具&#xff0c;通过 SSH 隧道间接访问远程的…...

使用ElasticSearch-dump工具进行ES数据迁移、备份

elasticsearch-dump基本使用 该工具基于第三方Elasticdump工具来实现&#xff0c;仓库地址&#xff1a;https://github.com/elasticsearch-dump/elasticsearch-dump/tree/master&#xff0c;用于更加快捷方便的将Elasticsearch不同集群的数据进行索引备份和还原。 一、安装 …...

SpringMVC源码-SpringMVC源码请求执行流程及重点方法doDispatch讲解

一、开始请求 在浏览器访问http://localhost:8080/spring_mymvc/userlist这个接口&#xff0c;是个get请求。 FrameworkServlet类的service方法会被请求到: 调用路径如下&#xff1a; service:945, FrameworkServlet (org.springframework.web.servlet) service:764, HttpSer…...

《深度学习》OpenCV 指纹验证、识别

目录 一、指纹验证 1、什么是指纹验证 2、步骤 1&#xff09;图像采集 2&#xff09;图像预处理 3&#xff09;特征提取 4&#xff09;特征匹配 5&#xff09;相似度比较 6&#xff09;结果输出 二、案例实现 1、完整代码 2、实现结果 调试模式&#xff1a; 三、…...

爬虫入门之爬虫原理以及请求响应

爬虫入门之爬虫原理以及请求响应 爬虫需要用到的库, 叫requests. 在导入requests库之前, 需要安装它, 打开cmd: 输入pip install 库名 pip install requests后面出现successful或requirement already就说明已经下载成功了!!! 下载出现的问题: 1.有报错或者是下载慢 修改镜像…...

CTF ciscn_2019_web_northern_china_day1_web1复现

ciscn_2019_web_northern_china_day1_web1 复现&#xff0c;环境源于CTFTraining 分析 拿到题目扫描&#xff0c;发现没有什么有用资产 扫描过程中注册账号登录&#xff0c;发现上传入口 上传文件&#xff0c;发现下载删除行为&#xff0c;寻找功能点&#xff0c;发现不能访问…...

docker命令汇总

Docker 是一个开源的应用容器引擎&#xff0c;它允许开发者打包应用以及依赖包到一个可移植的容器中&#xff0c;然后发布到任何流行的 Linux 机器上&#xff0c;也可以实现虚拟化。容器是完全使用沙箱机制&#xff0c;相互之间不会有任何接口。 以下是一些常用的 Docker 命令…...

云计算在现代企业中的应用与优势

云计算在现代企业中的应用与优势 随着信息技术的飞速发展&#xff0c;云计算已经成为现代企业不可或缺的一部分。作为一种创新的计算模式&#xff0c;云计算为企业提供了前所未有的灵活性和可扩展性&#xff0c;极大地推动了企业的数字化转型。 一、云计算的基本概念 云计算…...

Android平台GB28181实时回传流程和技术实现

规范解读 GB28181 中的 “INVITE” 是会话初始协议&#xff08;SIP&#xff09;中的一种请求方法&#xff0c;主要用于邀请一个或多个参与者加入特定的会话。在 GB28181 标准中&#xff0c;“INVITE” 请求通常用于发起媒体流的传输请求。当一个设备想要接收来自另一个设备的媒…...

Text-to-SQL方法研究

有关Text-to-SQL实现细节&#xff0c;可以查阅我的另一篇文章text-to-sql将自然语言转换为数据库查询语句 1、面临的挑战 自然语言问题往往包含复杂的语言结构,如嵌套语句、倒装句和省略等,很难准确映射到SQL查询上。此外,自然语言本身就存在歧义,一个问题可能有多种解读。消除…...

【Router】路由功能之MAC地址过滤(MAC Filter)功能介绍及实现

MAC地址过滤(MAC Filter) MAC 地址过滤是一种网络安全技术,通过在网络设备(如路由器)上设置规则,允许或阻止特定 MAC 地址的设备连接到网络。其主要作用是增强网络的安全性,防止未经授权的设备接入网络。 MAC Filter工作原理 MAC 地址过滤的工作原理是根据设备…...

Flink 本地 idea 调试开启 WebUI

Flink 本地 idea 调试开启 WebUI Maven 引用相关的包配置端口使用本地带UI环境启动 // maven 导入<!-- flink运行时的webUI --><dependency><groupId>org.apache.flink</groupId><artifactId>flink-runtime-web</artifactId><version…...

如何识别IP地址是独享的还是共享的

在网络环境中&#xff0c;IP地址的分配和使用方式直接影响到用户的在线隐私和访问安全。选择独享IP还是共享IP取决于用户的具体需求&#xff0c;理解这两种IP地址的差异及其特点至关重要。本文将探讨如何区分独享IP和共享IP&#xff0c;以及各自的优缺点。 1. 什么是独享IP与共…...

X-Spreadsheet使用教程:打造你的Web端电子表格应用

在Web开发中&#xff0c;经常需要处理数据表格的展示与编辑&#xff0c;而X-Spreadsheet作为一款轻量级、功能强大的JavaScript电子表格库&#xff0c;为开发者提供了一个便捷的解决方案。本文将详细介绍如何使用X-Spreadsheet在Web项目中创建和配置电子表格&#xff0c;让你的…...

订餐点餐|订餐系统基于java的订餐点餐系统小程序设计与实现(源码+数据库+文档)

订餐点餐系统小程序 目录 基于java的订餐点餐系统小程序设计与实现 一、前言 二、系统功能设计 三、系统实现 四、数据库设计 1、实体ER图 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主介绍&#xff1a;✌️大厂码农|毕设布…...

Tkinter制作登录界面以及登陆后页面切换(一)

Tkinter制作登录界面以及登陆后页面切换&#xff08;一&#xff09; 前言序言1. 由来2. 思路3. 项目结构描述4. 项目实战1. 登录界面实现&#xff08;代码&#xff09;2. 首页界面实现&#xff08;代码&#xff09;3. 打包build.py&#xff08;与main.py同级目录&#xff09;4.…...

Colorful/七彩虹将星X17 AT 23 英特尔13代处理器 Win11原厂OEM系统 带COLORFUL一键还原

安装完毕自带原厂驱动和预装软件以及一键恢复功能&#xff0c;自动重建COLORFUL RECOVERY功能&#xff0c;恢复到新机开箱状态。 【格式】&#xff1a;iso 【系统类型】&#xff1a;Windows11 原厂系统下载网址&#xff1a;http://www.bioxt.cn 注意&#xff1a;安装系统会…...

《Ubuntu20.04环境下的ROS进阶学习8》

一、中断和定时器中断 在ROS中我们经常会遇到要使用中断函数的情况&#xff0c;中断函数的触发方式有很多种&#xff0c;比如检测到某个引脚的电平变化&#xff0c;或某个数据达到了一定的范围&#xff0c;但最实用的中断触发方式还是定时器中断。 二、编写ROS的中断代码 ros中…...

ubuntu24.04 怎么调整swap分区的大小,调整为16G

在Ubuntu中&#xff0c;swap分区的大小通常建议为物理内存的1到2倍&#xff0c;具体取决于你的使用需求和系统内存。例如&#xff0c;如果你有8GB内存&#xff0c;swap可以设置为8GB到16GB。swap的主要作用是当物理内存不足时&#xff0c;提供额外的虚拟内存&#xff0c;帮助防…...

【论文阅读】视觉里程计攻击

Adversary is on the Road: Attacks on Visual SLAM using Unnoticeable Adversarial Patch 一、视觉SLAM的不安全因素 根据论文的分析&#xff0c;视觉SLAM由于完全依赖于特征&#xff0c;缺少验证机制导致算法不安全。前端在受到干扰的情况下&#xff0c;会导致误匹配增加&…...

解决 Git LFS 切换分支失败问题

场景描述 在本地已有分支 A 的情况下&#xff0c;目前工作在分支 B。当尝试从 B 分支切回 A 分支时&#xff0c;由于 A 分支存在 LFS 上传的大文件&#xff0c;导致切换失败。这个问题通常是因为某些 LFS 文件在服务器上不存在或没有权限访问。 报错日志 切换分支时遇到的错…...

BaoStock 的安装

安装 pip3 install baostock使用这个库登录免费帐户时有时候会出现登录失败的问题 import baostock as bs # 登录系统 lg bs.login() # 登出系统 bs.logout()login failed! logout failed!可能是由于高版本的python需要验证ssl&#xff0c;本地将其设置为可信服务器地址可以…...

聚势启新 智向未来 | 重庆华阳通用科技有限公司揭牌成立

助推两江新区汽车产业高质量发展 (以下文字内容转载自两江新区网&#xff09; 9月26日&#xff0c;重庆华阳通用科技有限公司&#xff08;华阳通用重庆子公司&#xff09;在两江新区揭牌成立&#xff0c;将致力于智能座舱、智能驾驶两大领域&#xff0c;不断加大技术研发投入…...

防做网站视频/外贸平台排行榜前十名

原文地址 今天给客户做一个微信端的HTML5的动画页面&#xff0c;页面内有一个视频文件&#xff0c;今天上线&#xff0c;这是前提。刚上线不久&#xff0c;客户的服务器便不堪重负&#xff0c;为了解决问题&#xff0c;我们将该页面的媒体文件放在自己的服务器上。问题来了&…...

做系统那个网站好/域名

前几天和一个在读的本科生聊天&#xff0c;他一直在抱怨学校学习的理论知识太多&#xff0c;实践的机会太少。担心自己因此毕业后可能难以找到工作。我认为一个人要是想投入开发&#xff0c;他总是可以找到项目的。与其把自己的时间浪费在抱怨和指责上&#xff0c;为什么不现在…...

php网站做多久/游戏推广合作

ANSA、META的二次开发均基于Python开发。本文基于ANSA的帮助文档《Introduction to Python》进行一定的扩展&#xff0c;希望能帮助大家快速掌握这门语言。首先来介绍下这门语言里的主要数据类型&#xff0c;包括&#xff1a;整型、浮点型、复数、布尔类型、字符串、列表、元祖…...

台州网站设计 解放路/推广方案怎么做

工厂模式功能说明您是否需要一种非常快速的方法来制作Factory对象&#xff1f; 然后&#xff0c;您需要lambda或其他函数传递&#xff01; 它不仅快速&#xff0c;而且非常简单。 我敢打赌&#xff0c;如果您对Lambdas非常满意&#xff0c;那么您只需阅读标题就可以做到这一点。…...

做网站 广告费 步骤/百度一下的网址

# RSA加解密及签名算法的技术原理及其Go语言实现对称加密中&#xff0c;加密和解密使用相同的密钥&#xff0c;因此必须向解密者配送密钥&#xff0c;即密钥配送问题。而非对称加密中&#xff0c;由于加密和解密分别使用公钥和私钥&#xff0c;而公钥是公开的&#xff0c;因此可…...

中山地区做网站公司/acca少女网课视频

工作过程中有时候会接收到数据库服务器器load 飙高的报警,比如:  load1 15.25 base: 8.52,collect time:2014-08-30  如何处理load 异常飙高的报警呢&#xff1f; 本文尝试从原理&#xff0c;原因&#xff0c;解决方法来阐述这类问题的解决思路。  一 原理分析  CPU作为…...