Windows 下使用C#开启蓝牙(未解决的坑)

这篇具有很好参考价值的文章主要介绍了Windows 下使用C#开启蓝牙(未解决的坑)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

需求

当程序检测到蓝牙未打开时需要程序自动将W10的蓝牙开启。

资料

Turn on/off Bluetooth radio/adapter from cmd/powershell in Windows 10 - Super User

上的这个连接是通过powershell 开启蓝牙具体代码如下

[CmdletBinding()] Param (
    [Parameter(Mandatory=$true)][ValidateSet('Off', 'On')][string]$BluetoothStatus
)
If ((Get-Service bthserv).Status -eq 'Stopped') { Start-Service bthserv }
Add-Type -AssemblyName System.Runtime.WindowsRuntime
$asTaskGeneric = ([System.WindowsRuntimeSystemExtensions].GetMethods() | ? { $_.Name -eq 'AsTask' -and $_.GetParameters().Count -eq 1 -and $_.GetParameters()[0].ParameterType.Name -eq 'IAsyncOperation`1' })[0]
Function Await($WinRtTask, $ResultType) {
    $asTask = $asTaskGeneric.MakeGenericMethod($ResultType)
    $netTask = $asTask.Invoke($null, @($WinRtTask))
    $netTask.Wait(-1) | Out-Null
    $netTask.Result
}
[Windows.Devices.Radios.Radio,Windows.System.Devices,ContentType=WindowsRuntime] | Out-Null
[Windows.Devices.Radios.RadioAccessStatus,Windows.System.Devices,ContentType=WindowsRuntime] | Out-Null
Await ([Windows.Devices.Radios.Radio]::RequestAccessAsync()) ([Windows.Devices.Radios.RadioAccessStatus]) | Out-Null
$radios = Await ([Windows.Devices.Radios.Radio]::GetRadiosAsync()) ([System.Collections.Generic.IReadOnlyList[Windows.Devices.Radios.Radio]])
$bluetooth = $radios | ? { $_.Kind -eq 'Bluetooth' }
[Windows.Devices.Radios.RadioState,Windows.System.Devices,ContentType=WindowsRuntime] | Out-Null
Await ($bluetooth.SetStateAsync($BluetoothStatus)) ([Windows.Devices.Radios.RadioAccessStatus]) | Out-Null

 执行上面的powershell 脚本需要输入On开启蓝牙,输入Off关闭蓝牙

Windows 下使用C#开启蓝牙(未解决的坑),飞跃大坑,c#,开发语言

由于我只需要开启蓝牙就将powershell 脚本简化,直接运行脚本就可以开启蓝牙,代码如下:

If ((Get-Service bthserv).Status -eq 'Stopped') { Start-Service bthserv }
Add-Type -AssemblyName System.Runtime.WindowsRuntime
$asTaskGeneric = ([System.WindowsRuntimeSystemExtensions].GetMethods() | ? { $_.Name -eq 'AsTask' -and $_.GetParameters().Count -eq 1 -and $_.GetParameters()[0].ParameterType.Name -eq 'IAsyncOperation`1' })[0]
Function Await($WinRtTask, $ResultType) {
    $asTask = $asTaskGeneric.MakeGenericMethod($ResultType)
    $netTask = $asTask.Invoke($null, @($WinRtTask))
    $netTask.Wait(-1) | Out-Null
    $netTask.Result
}
[Windows.Devices.Radios.Radio,Windows.System.Devices,ContentType=WindowsRuntime] | Out-Null
[Windows.Devices.Radios.RadioAccessStatus,Windows.System.Devices,ContentType=WindowsRuntime] | Out-Null
Await ([Windows.Devices.Radios.Radio]::RequestAccessAsync()) ([Windows.Devices.Radios.RadioAccessStatus]) | Out-Null
$radios = Await ([Windows.Devices.Radios.Radio]::GetRadiosAsync()) ([System.Collections.Generic.IReadOnlyList[Windows.Devices.Radios.Radio]])
$bluetooth = $radios | ? { $_.Kind -eq 'Bluetooth' }
[Windows.Devices.Radios.RadioState,Windows.System.Devices,ContentType=WindowsRuntime] | Out-Null
Await ($bluetooth.SetStateAsync("On")) ([Windows.Devices.Radios.RadioAccessStatus]) | Out-Null

.\BluetoothEnable.ps1

问题

我在C#中调用cmd.exe执行脚本就会报错,错误如下图:

Windows 下使用C#开启蓝牙(未解决的坑),飞跃大坑,c#,开发语言

Windows 下使用C#开启蓝牙(未解决的坑),飞跃大坑,c#,开发语言

以后解决了这个问题再来补充,也请大家回复一下看看,有没有哪位大神能解决。 文章来源地址https://www.toymoban.com/news/detail-800269.html

到了这里,关于Windows 下使用C#开启蓝牙(未解决的坑)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C#:如何用VS开启人生中第一个Windows窗体应用程序(Winform)?

    摘要:Windows窗体应用程序(Winform,下文以此指代)既能有效、直观地设计Windows窗体界面,又支持内部逻辑的编写。那么,对于C#初学者来说,如何开启第一个Winform程序呢?    编程语言:C# 编程环境:Visual Studio 2019 目录 步骤 每篇寄语         1、点击桌面Visual Studio 2019图

    2024年02月09日
    浏览(58)
  • Windows11如何支持LDAC蓝牙协议【Windows完美解决方案】

    Windows的蓝牙协议一直是让人诟病的问题,直到Windows 11 也只支持 SBC 和 AAC 编解码器。 在18年大学期间购入了索尼的WH-1000XM3,得益于索尼自家的 LDAC 编解码器,它可以实现最高 990Kbps 码率(24-bit/96KHz)的蓝牙音频传输,可以做到无损传输。但Windows一直是没有原生支持LDAC协议,

    2024年02月15日
    浏览(69)
  • Windows Update彻底禁用/禁用后自动开启的解决办法

    1、右键「此电脑」——「管理」  2、「服务和应用程序」——「服务」,找到右侧的「Windows Update」,右键点「属性」  3、在「常规」中,设置「启动类型」为「禁用」 4、在「恢复」页签中,所有的「失败」都设置为「无操作」,最后点「确定」  5、键盘按Win+R,弹出运行

    2024年02月14日
    浏览(55)
  • Socket通讯使用的坑-消息合并发送-解决方法

    关联文章  Socket通讯使用的坑-消息合并发送-CSDN博客 解决方法 调用

    2024年01月17日
    浏览(62)
  • 开启visual studio,git for windows 疯狂占用内存的解决

    最近开启visual studio写代码的时候, IDE 总是会莫名奇妙的卡住然后闪退,今天打开任务管理器看了下原因,发现是visual studio所占磁盘内存不断疯涨,每秒几十MB的向上窜,不一会儿就到了2000MB,然后卡死。 点击 visual studio 里看,发现是 git for Windows 占用了大量内存,一想起前

    2024年02月16日
    浏览(61)
  • keychron K3 键盘和 Windows11 操作系统的笔记本电脑通过蓝牙配对出现问题的解决方案

    最近一直使用良好的 keychron k3 键盘,忽然出现了一些问题。 我用的是 Windows11 操作系统。keychron k3 采用蓝牙模式连接。能够成功配对,但 Connected 状态只能持续1秒钟,随即就变成了 Paired 状态。 下图是短暂的1秒钟能够成功连接的状态: 同这台笔记本电脑连接的其他蓝牙设备

    2024年02月09日
    浏览(72)
  • 项目搭建使用qiankun(乾坤),入门篇,以及遇到的坑与解决

    微前端架构具备以下几个核心价值: 技术栈无关 主框架不限制接入应用的技术栈,微应用具备完全自主权 独立开发、独立部署 微应用仓库独立,前后端可独立开发,部署完成后主框架自动完成同步更新 增量升级 在面对各种复杂场景时,我们通常很难对一个已经存在的系统

    2024年02月12日
    浏览(39)
  • Android Bluetooth(一)——蓝牙的开启和搜索

    Android 平台包含蓝牙网络堆栈支持,此支持能让设备以无线方式与其他蓝牙设备交换数据。应用框架提供通过 Android Bluetooth API 访问蓝牙功能的权限。这些 API 允许应用以无线方式连接到其他蓝牙设备,从而实现点到点和多点无线功能。 Android 应用可通过 Bluetooth API 执行以下操

    2024年01月16日
    浏览(45)
  • 解决BigDecimal序列化科学计数法前端展示问题(大坑)

    前言:在生产中出现一个问题,就是BigDecimal类型的字段在前端页面展示变成科学计数法,通过排查,发现里面的坑还是挺多的,所以特意记录下处理过程。Json序列化,不同项目中配置的都不一样,有些项目是使用springboot里面自带的jackson的,有些是使用fastjson处理,不同的序

    2024年01月18日
    浏览(45)
  • flutter3使用dio库发送FormData数据格式时候的坑,和get库冲突解决办法

    问题1:当你使用 FormData.from(Flutter3直接不能用) 的时候,可能会提示没有这个方法,或者使用 FormData.fromMap(flutter3的dio支持) 的时候也提示没有,这时候可能就是和get库里面的Formdata冲突了 问题1:The method \\\'fromMap\\\' isn\\\'t defined for the type \\\'FormData\\\'. (Documentation)  Try correcting the name to

    2024年01月19日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包