#import <IOKit/IOKitLib.h>
#import <IOKit/hidsystem/IOHIDLib.h>
#import <IOKit/hidsystem/ev_keymap.h>
 
static io_connect_t get_event_driver(void)
{
    static  mach_port_t        sEventDrvrRef = 0;
    mach_port_t                masterPort, service, iter;
    kern_return_t            kr;
     
    if (!sEventDrvrRef) {
        // Get master device port
        kr = IOMasterPort( bootstrap_port, &masterPort );
        check( KERN_SUCCESS == kr);
         
        kr = IOServiceGetMatchingServices( masterPort, IOServiceMatching(kIOHIDSystemClass), &iter );
        check( KERN_SUCCESS == kr);
         
        service = IOIteratorNext( iter );
        check( service );
         
        kr = IOServiceOpen( service, mach_task_self(), kIOHIDParamConnectType, &sEventDrvrRef );
        check( KERN_SUCCESS == kr );
         
        IOObjectRelease( service );
        IOObjectRelease( iter );
    }
     
    return sEventDrvrRef;
}
static void HIDPostAuxKeyWithState(UInt8 auxKeyCode, UInt8 keyState)
{
    NXEventData event;
    kern_return_t kr;
    IOGPoint loc = { 0, 0 };
         
    bzero(&event, sizeof(NXEventData));
    event.compound.subType = NX_SUBTYPE_AUX_CONTROL_BUTTONS;
     
    if (OSLittleEndian == OSHostByteOrder()) {
        UInt32 evtInfo = auxKeyCode << 16 | keyState << 8;
        event.compound.misc.L[0] = evtInfo;
    }else {
        event.compound.misc.S[0] = auxKeyCode;
        event.compound.misc.C[2] = keyState;
    }
     
    kr = IOHIDPostEvent( get_event_driver(), NX_SYSDEFINED, loc, &event, kNXEventDataVersion, 0, FALSE );
    check( KERN_SUCCESS == kr );
}
static void HIDPostAuxKey(UInt8 auxKeyCode)
{
    HIDPostAuxKeyWithState(auxKeyCode, NX_KEYDOWN);
    HIDPostAuxKeyWithState(auxKeyCode, NX_KEYUP);
}
使用方法:
HIDPostAuxKey(NX_KEYTYPE_SOUND_UP);

IOS修改系统音量的更多相关文章

  1. iOS编程修改系统音量

    iOS的AVFoundation框架提供了基本的音视频播放工具,我们基本上可以靠其中提供的类完成绝大部分的音视频播放任务.但是在音频播放的输出音量的处理上,苹果的策略比较保守.尽管AVPlayer和A ...

  2. iOS 获取系统音量

    //设置一个全局变量 UISilder * volumeViewSlider; #pragma mark - 获取系统音量 - (void)configureVolume { volumeView = ...

  3. iOS 设置系统音量和监听系统音量变化

    很简单的调用 首先在工程引入MediaPlayer.framework #import <MediaPlayer/MediaPlayer.h> 1. 获取系统音量 // 获取系统音量 MP ...

  4. android小工具-系统音量管理器

    简介:调节系统音量的小工具,能够快捷的调节系统铃声,媒体音乐.闹钟和通话声音.你可能会想,手机自带的音量键还不够快捷吗?还得写个程序?首先,用音量键调音只能调节一种声音,像闹钟这种声音不能直接调.其次 ...

  5. iOS开发——运行时OC篇&使用运行时获取系统的属性:使用自己的手势修改系统自带的手势

    使用运行时获取系统的属性:使用自己的手势修改系统自带的手势 有的时候我需要实现一个功能,但是没有想到很好的方法或者想到了方法只是那个方法实现起来太麻烦,一或者确实为了装逼,我们就会想到iOS开发中最牛 ...

  6. android5.1修改系统默认音量

    在做定制需求的时候,需要修改系统通知的声音,将其禁用掉,避免第三方应用发送通知时,声音很大,吓着用户.索性就把通知声音关掉.下面就说说关闭声音的几种方法,以及修改系统默认声音的方法. 1. 直接修改系 ...

  7. ios 修改导航条返回按钮

    ios 修改导航条返回按钮 方式一:使用系统的:可以更改系统的文字:以及通过设置导航条的颜色来达到预期的效果 UIBarButtonItem *backBtns = [[UIBarButtonItem ...

  8. Android黑科技,读取用户短信+修改系统短信数据库

    安卓系统比起ios系统最大的缺点,相信大家都知道,就是系统安全问题.这篇博客就秀一波“黑科技”. 读取用户短信 Android应用能读取用户手机上的短信,相信已经不是什么新鲜事,比如我们收到的短信验证 ...

  9. Android中通过进程注入技术修改系统返回的Mac地址

    致谢 感谢看雪论坛中的这位大神,分享了这个技术:http://bbs.pediy.com/showthread.php?t=186054,从这篇文章中学习到了很多内容,如果没有这篇好文章,我在研究的过 ...

随机推荐

  1. 非侵入式JavaScript(Unobtrusive javaScript)理解

    转载自 https://my.oschina.net/leegq/blog/279750 在Web的早期阶段,也就是在jQuery出现以前,在同一个文件中混杂JavaScript代码和HTML标记是非 ...

  2. Codeforces 61B【怪在读题】

    搞不懂为什么DFS的写法崩了,然后乱暴力,因为题意不是很懂... 主要还是读题吧(很烦 #include <bits/stdc++.h> using namespace std; type ...

  3. 51nod1416(dfs)

    题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1416 题意:中文题诶- 思路:dfs 搜索同一颜色的点.. 只 ...

  4. Optimized fragmentation improves the identification of peptides cross-linked by MS-cleavable reagents (文献分享一组-张宇星)

    题目:Optimized fragmentation improves the identification of peptides cross-linked by MS-cleavable reag ...

  5. luoguP3808[模板]AC自动机(简单版)

    传送门 ac自动机模板题,裸的多串匹配 代码: #include<cstdio> #include<iostream> #include<algorithm> #i ...

  6. radio与img对齐 (CSS3)

    实现方式: html: <div class="pay-four"> <div class="pay-four-border"> < ...

  7. Unix高级环境编程之fcntl函数

    #include <fcntl.h> int fcntl(int fd, int cmd, ...) fcntl功能 复制一个现有的描述符 (cmd = F_DUPFD) ##### 返回 ...

  8. 用vue.js实现购物车功能

    购物车是电商必备的功能,可以让用户一次性购买多个商品,常见的购物车实现方式有如下几种: 1. 用户更新购物车里的商品后,页面自动刷新. 2. 使用局部刷新功能,服务器端返回整个购物车的页面html 3 ...

  9. equals方法那些事

    1.Equals 很多人对equals方法的用法有些模糊,这里来为大家梳理下: 字符串中的equals方法,该方法用来判断两个字符串的内容是否相同. 例1: String str1="Hel ...

  10. [问题记录]Ubuntu下chmsee安装失败的解决

    日期:2016年2月26日 一直在找Ubuntu下查看chm的工具但是普遍不理想,发现在deepin中的chmsee相对比较好,但是直接执行网上的sudo apt-get install chmsee ...