首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >android 十八 蓝牙及Wi-Fi

android 十八 蓝牙及Wi-Fi

作者头像
张哥编程
发布于 2024-12-17 03:09:13
发布于 2024-12-17 03:09:13
2850
举报
文章被收录于专栏:云计算linux云计算linux

学习内容

Ø 蓝牙的基本概念

Ø Android中蓝牙的应用

能力目标

Ø 了解蓝牙的基本概念

Ø 掌握Android中蓝牙的应用

Ø 掌握如何使用Android中Wi-Fi

本章简介

蓝牙是一种重要的短距离无线通信技术,它被广泛应用于各种设备,比如计算机、手机、汽车等,支持设备之间的近距离通信,从而是数据传输更加快捷有效。Wi-Fi是一种高速的无线通信协议,它具有传输速度高,传输距离长的特点。通过WiFi,手机、PDA、电脑等移动设备可以以无线方式连接网络。本节中我们主要来学习Android开发中如何调用系统中蓝牙以及wifi的功能。

核心技能部分

11.1 蓝牙简介

蓝牙(Bluettoth)是目前使用最广泛的一种短距离(10M)无线通信协议之一,广泛应用于各种设备中,比如手机、计算机、耳机、鼠标、键盘等。

蓝牙采用了分散式网络结构以及快跳频和短包技术,支持点对点及点对多点的通信,工作在全球通用的2.4GHz频度。根据不同的蓝牙版本,传输速度会差很多,例如:最新的蓝牙3.0传输速度为3Mb/s,而未来的蓝牙4.0技术从理论上可达到60Mb/s。

蓝牙协议分为核心协议层、电缆替代协议层、电话控制协议层、采纳的其它协议层等4层,蓝牙的核心协议包括基带、链路管理、逻辑链路控制和适应协议四部分。其中链路管理(LMP)负责蓝牙组件间连接的建立。逻辑链路控制与适应协议(L2CAP)位于基带协议层上,属于数据链路层,是一个为高层传输和应用层协议屏蔽基带协议的适配协议。

蓝牙技术作为目前比较常用的无线通信技术,早已经成为手机的标配之一,基于Android的手机设备也不例外。但遗憾的是模拟器不支持蓝牙程序的调试,蓝牙程序必须运行在真机上,且必须是在Android版本2.0以上的真机上。

Android中蓝牙有关的类和接口都位于android.bluetooth包中,如下表11-1-1所示。

表11-1-1 蓝牙功能包

​功能包​

​说明​

BluetoothAdapter

本地蓝牙适配器

BluetoothClass

蓝牙类,主要包括服务和设备

BluetoothClass.Device

蓝牙设备类

BluetoothClass.Device.Major

蓝牙设备管理器

BluetoothClass.Service

有关蓝牙的服务类

BluetoothDevice

远程蓝牙设备

BluetoothServerSocket

监听蓝牙连接的类

BluetoothSocket

蓝牙连接类

这些蓝牙API允许应用程序扫描、连接和断开其它蓝牙设备,包括编写和修改本地服务的SDP协议数据库和查询其它蓝牙设备上的SDP协议数据库,以及在Android上建立RFCOMM协议的连接并连接到其它指定设备上。

11.2 蓝牙的打开、关闭及搜索

通过11.1小节的学习我们知道Android中与蓝牙相关的类和接口都定义在了android.bluetooth包中,我们常用的主要是BluetoothAdapter和BluetoothDevice两个类。其中BluetoothAdapter类的对象代表了本地的蓝牙适配器;BluetoothDevice代表了一个远程的Bluetooth设备。

扫描已经配对的蓝牙设备时,包括手机和电脑配对,必须得通过手动完成,不能通过代码完成,我们应该把主要的精力放在配对完成之后的操作上来。核心步骤如下:

(1) 获得BluetoothAdapter对象;

(2) 判断当前设备中是否拥有蓝牙设备;

(3) 判断当前设备中的蓝牙设备是否已经打开,如果没有打开的话,要打开;

(4) 得到所有已经配对的蓝牙设备对象BluetoothDevice;

在使用蓝牙之前,需要在功能清单文件AndroidManifest.xm中添加如下权限,

<uses-permission android:name=”android.permission.BLUETOOTH”/>

<uses-permission android:name=”android.permission.BLUETOOTH_ADMIN”/>

BluetoothAdapter是蓝牙的核心类,下面的代码创建了BluetoothAdapter对象:

adapter = BluetoothAdapter.​getDefaultAdapter​();

通过代码还可以直接打开系统的蓝牙设置界面,代码如下:

Intent enable = ​new​ Intent(BluetoothAdapter.​ACTION_REQUEST_ENABLE​);

startActivityForResult(enable, 22);

或直接使用enable()方法打开蓝牙功能,代码如下:

adapter.enable();

要关闭蓝牙,可以使用如下的代码:

adapter.disable();

蓝牙设备打开之后,还需要让其它的蓝牙设备可以搜索到自己,蓝牙才能使用,要想让别人能够搜索到自己,需要在程序中加入如下代码:

Intent discoveryIntent =

new​ Intent(BluetoothAdapter.​ACTION_REQUEST_DISCOVERABLE​);

startActivityForResult(discoveryIntent,22);

每一个蓝牙设备由BluetoothDevice描述,需要定义一个List对象,来保存搜索到的蓝牙设备,具体代码如下:

private​ List<BluetoothDevice> devices = ​new​ ArrayList<BluetoothDevice>();

接着调用BluetoothAdapter的startDiscovery()方法就可以搜索附近的蓝牙设备了。系统会在每搜索到一个蓝牙设备时发送一个广播,通过接收这个广播,可以获得搜索到的蓝牙设备信息。当搜索完成时还会发送一个广播,可以在该广播接收器中做一些收尾工作。

示例11.1​:

演示了上述蓝牙的常用操作,Activity类的详细代码如下所示:

public class​ DiscoveryActivity ​extends​ ListActivity {

private​ Handler handler = ​null​;

private​ BluetoothAdapter adapter = ​null​;// 蓝牙适配器对象

private​ List<BluetoothDevice> devices = ​null​;// 用来存储搜索到的蓝牙设备

private volatile boolean​ discoveryFinished;// 表示搜索是否完成

private​ Runnable discoveryWorkder = ​new​ Runnable() {

public void​ run() {

adapter.startDiscovery();// 开始搜索

while​ (​true​) {

if​ (discoveryFinished) {

break​;

}

try​ {

Thread.​sleep​(100);

} ​catch​ (InterruptedException e) {

}

}

}

};

// 搜索蓝牙设备时调用

private​ BroadcastReceiver foundReceiver = ​new​ BroadcastReceiver() {

public void​ onReceive(Context context, Intent intent) {

// 获得搜索结果数据

BluetoothDevice device =

intent.getParcelableExtra(BluetoothDevice.​EXTRA_DEVICE​);

// 将结果添加到设备列表中

devices.add(device);

// 显示列表

showDevices();

}

};

// 搜索完成时调用

private​ BroadcastReceiver discoveryReceiver = ​new​ BroadcastReceiver() {

@Override

public void​ onReceive(Context context, Intent intent) {

// 卸载注册的接收器

unregisterReceiver(foundReceiver);

unregisterReceiver(​this​);

discoveryFinished = ​true​;

}

};

protected void​ onCreate(Bundle savedInstanceState) {

super​.onCreate(savedInstanceState);

getWindow().setFlags(LayoutParams.​FLAG_BLUR_BEHIND​, LayoutParams.​FLAG_BLUR_BEHIND​);

setContentView(R.layout.​discovery​);

devices = ​new​ ArrayList<BluetoothDevice>();

adapter = BluetoothAdapter.​getDefaultAdapter​();

handler = ​new​ Handler();

if​ (adapter != ​null​) {

System.​out​.println("本机拥有蓝牙设备");

// 如果蓝牙适配器没有打开,则打开

if​ (!adapter.isEnabled()) {

adapter.enable();

}

// 注册discoveryReceiver接收器

IntentFilter discoveryFilter = ​new​ IntentFilter(BluetoothAdapter.​ACTION_DISCOVERY_FINISHED​);

registerReceiver(discoveryReceiver, discoveryFilter);

// 注册foundReceiver接收器

IntentFilter foundFilter = ​new​ IntentFilter(BluetoothDevice.​ACTION_FOUND​);

registerReceiver(foundReceiver, foundFilter);

// 显示一个对话框,正在搜索蓝牙设备

SamplesUtils.​indeterminate​(DiscoveryActivity.​this​,

handler, "正在扫描...",

discoveryWorkder,

new​ OnDismissListener() {

public void​ onDismiss(DialogInterface dialog) {

for​ (; adapter.isDiscovering();) {

adapter.cancelDiscovery();

}

discoveryFinished = ​true​;

}

}, ​true​);

}​else​ {

System.​out​.println("本机没有蓝牙设备");

}

}

// 显示搜索设备列表

protected void​ showDevices() {

List<String> list = ​new​ ArrayList<String>();

for​ (​int​ i = 0, size = devices.size(); i < size; ++i) {

StringBuilder builder = ​new​ StringBuilder();

BluetoothDevice device = devices.get(i);

builder.append(device.getName()).append(" : ") .append(device.getAddress());

list.add(builder.toString());

}

final​ ArrayAdapter<String> adapter = ​new​ ArrayAdapter<String>(​this​, android.R.layout.​simple_list_item_1​, list);

handler.post(​new​ Runnable() {

public void​ run() {

setListAdapter(adapter);

}

});

}

protected void​ onListItemClick(ListView l, View v, ​int​ position, ​long​ id) {

Intent result = ​new​ Intent();

result.putExtra(BluetoothDevice.​EXTRA_DEVICE​, devices.get(position));

setResult(​RESULT_OK​, result);

finish();

}

}

将程序部署到真机上运行测试程序,结果如下图10.1.1和图10.1.2所示。

android 十八 蓝牙及Wi-Fi_搜索
android 十八 蓝牙及Wi-Fi_搜索
android 十八 蓝牙及Wi-Fi_搜索_02
android 十八 蓝牙及Wi-Fi_搜索_02

11.3 Wi-Fi入门

Wi-Fi的全称是Wireless Fidelity,是一种高速的无线通信协议。Wi-Fi最大的优点是传输速度高,传输速度可以达到11M/S,另外Wi-Fi的有效传输距离也很长。

Wi-Fi的频段在世界范围内是无需任何电信运营执照就可以免费使用,因此WLAN无线设备提供了一个世界范围内可用的、费用极低且数据带宽极高的无线空中接口。用户可以在Wi-Fi覆盖区域内快速浏览网页、随时随地接听、拨打电话。而其它一些基于WLAN的宽带数据应用,如流媒体、网络游戏等功能更是值得用户期待。有了Wi-Fi功能,我们打电话(包括国际长途)、浏览网页、收发电子邮件、音乐下载、数码照片传递等,再也无需担心速度慢和花费高的问题。现在Wi-Fi在国内的覆盖范围越来越广泛,比如高级宾馆、豪华住宅区、飞机场以及咖啡厅之类的场所都有Wi-Fi接口。当我们去旅游、办公时,就可以在这些场所使用我们的移动设备尽情网上冲浪了。

实际上,对于Wi-Fi并不需要过多的控制,当成功连接Wi-Fi后,就可以直接通过IP在Wi-Fi设备之间进行通信了。一般只需要控制打开或关闭Wi-Fi以及获得一些与Wi-Fi相关的信息,基本上来自请求端的信息都是可见的,比如连接速度、IP地址、完成状态等。不幸的是Wi-Fi功能不能在Android模拟器上测试,得使用支持Wi-Fi功能的Android真机才行,就算在有Wi-Fi功能的真机上也需要先通过Wi-Fi和其它Wi-Fi设备连接后,才能获得Wi-Fi相关的信息。

Android中编写Wi-Fi程序,主要涉及以下几个类和接口。

Ø ScanResult:主要用来描述已经检测出的接入点,包括接入点的地址、接入点的名称、身份认证、频率、信号强度等信息。

Ø WifiConfiguration:Wi-Fi网络的配置,包括安全配置等。

Ø WifiManager:提供了管理Wi-Fi连接的大部分API,它主要包括如下内容

(1) 已经配置好的网络清单。这个清单可以查看和修改,而且可以修改个别记录的属性。

(2) 当连接中有活动的Wi-Fi网络时,可以建立或关闭这个连接,并且可以查询有关网络的状态信息。

(3) 对接入点的扫描结果包含足够的信息来决定需要与什么接入点建立连接。

(4) 定义了许多常量来表示Wi-Fi状态的改变。

Ø WifiInfo:Wi-Fi无线连接的描述,包括接入点、网络连接状态、隐藏的接入点、IP地址、连接速度、MAC地址、网络ID、信号强度等信息。

示例11.2

演示如何开关闭Wi-Fi以及获取Wi-Fi相关信息,这些信息包括:MAC地址、接入点的BSSID、IP地址、网络ID等。

布局文件的详细代码如下:

<?xml version=​"1.0"​ encoding=​"utf-8"​?>

<LinearLayout xmlns:android=​"http://schemas.android.com/apk/res/android"

android:layout_width=​"fill_parent"

android:layout_height=​"fill_parent"

android:orientation=​"vertical"​ >

<CheckBox

android:id=​"@+id/chkOpenCloseWifi"

android:layout_width=​"fill_parent"

android:layout_height=​"wrap_content"​ />

<TextView

android:id=​"@+id/tvScanResult"

android:layout_width=​"wrap_content"

android:layout_height=​"wrap_content"​ />

<TextView

android:id=​"@+id/tvWifiInfo"

android:layout_width=​"wrap_content"

android:layout_height=​"wrap_content"

android:textSize=​"20sp"​ />

<TextView

android:id=​"@+id/tvWifiConfigurations"

android:layout_width=​"wrap_content"

android:layout_height=​"wrap_content"

android:layout_marginTop=​"20dp"

android:textSize=​"20sp"​ />

</LinearLayout>

Activity类代码如下:

public class​ WIFIActivity ​extends​ Activity ​implements​ OnCheckedChangeListener {

private​ WifiManager manager;

private​ WifiInfo wifiInfo;

private​ CheckBox chkOpenCloseWifiBox;

private​ List<WifiConfiguration> wifiConfigurations;

@Override

public void​ onCreate(Bundle savedInstanceState) {

super​.onCreate(savedInstanceState);

setContentView(R.layout.​wifi​);

manager = (WifiManager) getSystemService(Context.​WIFI_SERVICE​);

wifiInfo = manager.getConnectionInfo();

chkOpenCloseWifiBox = (CheckBox) findViewById(R.id.​chkOpenCloseWifi​);

TextView tvWifiConfigurations = (TextView) findViewById(R.id.​tvWifiConfigurations​);

TextView tvWifiInfo = (TextView) findViewById(R.id.​tvWifiInfo​);

chkOpenCloseWifiBox.setOnCheckedChangeListener(​this​);

if​ (manager.isWifiEnabled()) {

chkOpenCloseWifiBox.setText("Wifi已开启");

chkOpenCloseWifiBox.setChecked(​true​);

} ​else​ {

chkOpenCloseWifiBox.setText("Wifi已关闭");

chkOpenCloseWifiBox.setChecked(​false​);

}

// 获得​Wifi​信息

StringBuffer sb = ​new​ StringBuffer();

sb.append("Wifi信息\n");

sb.append("MAC地址:" + wifiInfo.getMacAddress() + "\n");

sb.append("接入点的BSSID:" + wifiInfo.getBSSID() + "\n");

sb.append("IP地址(int):" + wifiInfo.getIpAddress() + "\n");

sb.append("IP地址(Hex):" + Integer.​toHexString​(wifiInfo.getIpAddress()) + "\n");

sb.append("IP地址:" + ipIntToString(wifiInfo.getIpAddress()) + "\n");

sb.append("网络ID:" + wifiInfo.getNetworkId() + "\n");

tvWifiInfo.setText(sb.toString());

// 得到配置好的网络

wifiConfigurations = manager.getConfiguredNetworks();

tvWifiConfigurations.setText("已连接的无线网络\n");

for​ (WifiConfiguration wifiConfiguration : wifiConfigurations) {

tvWifiConfigurations.setText(tvWifiConfigurations.getText() + wifiConfiguration.SSID + "\n");

}

}

private​ String ipIntToString(​int​ ip) {

try​ {

byte​[] bytes = ​new byte​[4];

bytes[0] = (​byte​) (0xff & ip);

bytes[1] = (​byte​) ((0xff00 & ip) >> 8);

bytes[2] = (​byte​) ((0xff0000 & ip) >> 16);

bytes[3] = (​byte​) ((0xff000000 & ip) >> 24);

return​ Inet4Address.​getByAddress​(bytes).getHostAddress();

} ​catch​ (Exception e) {

return​ "";

}

}

@Override

public void​ onCheckedChanged(CompoundButton buttonView, ​boolean​ isChecked){

if​ (isChecked) {

manager.setWifiEnabled(​true​);

chkOpenCloseWifiBox.setText("Wifi已开启");

} ​else​ {

manager.setWifiEnabled(​false​);

chkOpenCloseWifiBox.setText("Wifi已关闭");

}

}

}

在有Wi-Fi接入点的环境中,将本程序部署到真机上进行测试,程序运行效果如下图11.1.3所示。

android 十八 蓝牙及Wi-Fi_android_03
android 十八 蓝牙及Wi-Fi_android_03
android 十八 蓝牙及Wi-Fi_android_04
android 十八 蓝牙及Wi-Fi_android_04

任务实训部分

1:实现一个蓝牙搜索程序

训练技能点

利用BluetoothDevice实现蓝牙设备搜索

需求说明

蓝牙实现的功能是在两台或多台设备之间传传输数据,因此我们要想使用蓝牙设备,首先需要能够搜索到对应的蓝牙设备,然后才能完成数据的传输。本实训要求大家参考11.2节的内容实现一个蓝牙搜索程序,当搜索到别的蓝牙设备后,要求以Toast的形式给用户弹出提示信息。

2:获取Wi-Fi相关信息

训练技能点

如何获取Wi-Fi相关信息

需求说明

Wi-Fi的连接信息在实际的应用中是很有用的,以连接速度为例,当我们可以在程序中根据连接速度的快慢做不同的工作,比如速度比较快时上传或下载资源、慢时浏览网页等。再比如,当我们的程序需要网络时,可以根据Wi-Fi的完成状态,来判断用户是否联网,如果没有联网给用户以相应的提示。本示例要实现的功能就是获取Wi-Fi的所有信息,然后显现给用户。

巩固练习

一、选择题

1. 蓝牙工作的频度是()

A. 1.8GHz

B. 2.4GHz

C. 3.2GHz

D. 3.0GHz

2. 下列说法中正确的是( )

A. WIFI的全称是Wireless Fidelety

B. WIFI的频段在世界范围内是无需任何电信运营执照就可以免费使用

C. 当成功连接WIFI后,就可以直接通过IP在WIFI设备之间进行通信了

D. ScanResult类主要用来描述已经检测出的接入点

二、上机练习

编写一程序,实现对Wi-Fi和蓝牙开启、关闭状态的控制。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-03-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
Office 2021官方镜像下载安装激活一条龙
同时在界面上也做了较大的改进,主界面的左侧导航更窄,在内容显示上,将过去最近打开的文档移至了右侧的选项卡内容中,新建时文档更加便捷。
Ponnie
2023/03/02
1.8K0
Office 2021官方镜像下载安装激活一条龙
visio2019下载激活,激活密钥绑定微软账户
Visio 2019 专业版是一款功能强大设计甘特图、设计逻辑图和设计思维图软件。用户可以在Visio 2019上设计流程图,设计甘特图,设计逻辑图,设计思维图,内置丰富的设计工具,结合大部分office的功能,让这款软件更加适合办公使用,让企业员工可以在自己熟悉的界面继续工作,内置的功能很多,集成的office工具也很多,借助熟悉的 Office 体验,通过 Visio 可以轻松直观地创建流程图、网络图、组织结构图、工程设计以及其他使用现代形状和模板的内容。重新创建流程图、映射 IT 网络、构建组织结构图或记录业务流程,
用户1040278
2022/09/02
1.9K0
visio2013首要事项闪退_visio一保存就闪退
visio 2013安装完成后,新建流程图或者打开流程图,程序就会自动关闭,为了找到错误,我们打开“控制面板->事件查看器->windows事件日志”可以看到一个错误日志,错误如下:
全栈程序员站长
2022/09/30
4.7K0
office2021安装包下载与激活教程
Office 2021有很多版本,比如专业增强版、Office家庭和学生版、专业版等。Office 2021家庭版包含Word、Excel、PowerPoint和OneNote日常生活必备程序。专业增强版和专业版包括Access、Excel、OneNote、Outlook、PowerPoint、Publisher、Skype和Word。所以在下载的时候,要知道自己需要哪个软件。不使用Access、Outlook和Publisher的用户可以安装家庭学生版,需要的用户可以安装专业增强版!下面就为大家整理一下Office 2021专业增强版全球各种语言的安装包下载链接。
用户9693436
2022/04/23
10.5K2
汇总最全的微软Windows系统镜像和Office下载地址
32位:ed2k://|file|cn_windows_10_consumer_edition_version_1809_updated_sept_2018_x86_dvd_c904d6c8.iso|3564730368|B31577E3A3825925D4D7972457D5A264|/
Lcry
2022/11/29
4.2K0
Office 2019 办公软件安装激活教程
原文链接:http://www.officech.com/Install_msOffice.html
office小助手
2021/01/06
8.4K0
Office 2019 办公软件安装激活教程
Office 2019软件安装包下载及安装教程
Microsoft office 2019简体中文版是一款非常受人欢迎的办公软件,包含了Word、Excel、PowerPoint、OneNote、Lync、Publisher和Access等等多款组件,且每个功能都支持独立打开使用,满足用户的所有使用需求。新版本还支持用户直接预览PDF并对其进行编辑,功能强大。
肉肉软件安装
2022/10/16
4.5K1
Office 2019软件安装包下载及安装教程
Mac版Office 2019下载安装
Office 2019是应用在Macos的经典的办公软件,包含Word、Excel、PowerPoint、Outlook、OneNote常用的办公五件套,无论你是资深人士还是新手小白,office2019使用起来都是非常简单,
用户10121095
2022/11/24
1.1K0
office2010怎么安装,电脑版office2010安装包教程
office2010载 SP1 包 所有 SP1 包都可以从 Microsoft 下载中心下载。 可以为已安装的每个产品下载并安装以下服务包。 请注意,若要确定应下载和安装的版本(例如 32 位或 64 位),请执行以下步骤:
用户10517666
2023/04/21
1.3K0
Office 2019
office 2019是经典的办公软件,大多数电脑办公都会应用到,包含Word、Excel、PowerPoint、Outlook、OneNote常用的办公五件套。无论你是资深人士还是新手小白,office2019使用起来都是非常简单,带来了很多新的功能,包括支持高分辨率显示Retina和全屏应用。office 2019 mac激活版安装包内附激活密钥,轻松激活为用户办公提供便捷高效的服务。
Mac小小心
2023/03/02
1.3K0
Office 2019
Office 2021:生产力和创造力的最新突破+全版本安装包
Microsoft Office 2021是一款全面的办公套件,包含了 Word、Excel、PowerPoint、Outlook 和 OneNote 等多个应用程序,可以帮助用户更加高效地完成各种工作任务。Office 2021是微软的最新版本,提供了一些新的功能和改进,为用户提供更多的选择和方式来提升生产力和创造力。
用户10313071
2023/04/12
9601
Office 2021:生产力和创造力的最新突破+全版本安装包
Office显示未经授权应该如何激活?
Office 2016专业增强版PJ最多只能使用180天,而且在你使用PJ版的Microsoft Office软件的期间,你的电脑系统和Office软件不能更新。更新之后就回到没破解前了,所有的功能直接给你灰色了。
office小助手
2022/05/06
9.6K0
Office显示未经授权应该如何激活?
如何免费获得Microsoft Office?
Microsoft Office通常起价为每年70美元,但有很多方法可以免费获得它。我们将向您展示无需支付一分钱即可获取Word,Excel,PowerPoint和其他Office应用程序的所有方法。
office小助手
2022/05/07
12.9K0
如何免费获得Microsoft Office?
微软365与Office 2019相比有什么不同
哪个更有价值:Microsoft 365 或 Office 2019?在这里,它们并排比较,看看哪一个更适合你。
office小助手
2022/04/27
3.7K0
微软365与Office 2019相比有什么不同
Office 2019 Mac(Office系列软件完整套装)永久激活版
Office 2019是应用在Macos的经典的办公软件,包含Word、Excel、PowerPoint、Outlook、OneNote常用的办公五件套,无论你是资深人士还是新手小白,office2019使用起来都是非常简单,office 2019 mac激活版安装包内附激活密钥,轻松激活为用户办公提供便捷高效的服务。
Mac小小
2022/08/12
1.4K0
Microsoft Office 2016 for Mac (15.40)破解激活工具与安装源
2017年12月13日更新本博客,激活工具同样适用于Office 15.40版本。我此前在国外网站上找到一个App,下载之后运行,直接点击一个黑色开锁的标识按钮,输入系统密码后即可破解激活。
botkenni
2019/09/03
13K1
Microsoft Office 2016 for Mac (15.40)破解激活工具与安装源
Office 2016 办公软件没有密钥如何和激活?
本文主要针对的问题是电脑上没有Office 2016 办公软件软件或者之前电脑上的 Office 办公软件版本不适合自己的需求,需要重新下载安装和激活 Office 2016 办公软件。如果您的电脑预装了Office办公软件特别是关于Office 办公软件的激活问题,小编是强烈不建议去搜索激活工具来激活 Office 办公软件和电脑系统的。因为以下几个原因:
office小助手
2021/01/07
7.3K0
Office 2016 办公软件没有密钥如何和激活?
Office 2021 for Mac 简体中文 官网下载地址
最新的 Office 2021 for Mac 推荐,一次性买断版本,安装激活后可永久使用。
用户1040278
2022/12/06
4.4K0
mac office 中文版 苹果电脑设备可安装激活
mac Word 、PowerPoint 、mac Excel mac Outloook等都是mac office的一部分,实用程序和其他功能。SkyDrive存储Skype通话时间和自动版本升级
用户10307898
2023/02/11
3K0
刚买的联想笔记本怎么激活Office?
你这属于激活前需要更新 Office。之前在Office中文网 (http://officech.com)写过一篇关于新电脑预装的Microsoft Office家庭学生版2019的激活说明。
office小助手
2022/05/07
10K0
刚买的联想笔记本怎么激活Office?
推荐阅读
相关推荐
Office 2021官方镜像下载安装激活一条龙
更多 >
LV.3
深圳市拉普拉斯网络使用有限公司运营开发工程师
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档