[CF.Skills]Windows Mobile如何编程实现免提功能

摘要:本文阐述了如何在Windows mobile的设备上使用托管代码在来电时触发扬声器,间接实现免提的功能
Keywords
Windows Mobile,.NET CompactFramework,Speaker,keybd_event,C#

相关文章
http://www.cnblogs.com/fox23/archive/2008/02/15/phoneincoming.html
http://www.cnblogs.com/fox23/archive/2008/03/12/phonestate1.html

前提
你的WM设备必须支持扬声器,模拟器自然不行

首先,需要导入用于发送按键消息的本地函数
    class NativeHelper
    
{
        
private const int KEYEVENTF_KEYUP = 0x0002;
        [DllImport(
"coredll.dll")]
        
private static extern void keybd_event(byte bVk, byte bScan, int dwFlags, int dwExtraInfo);
        
/// <summary>
        
/// 模拟按键触发扬声器
        
/// </summary>

        public static void TriggleSpeaker()
        
{
            keybd_event((
byte)Keys.F16, 000);
            Thread.Sleep(
500);
            keybd_event((
byte)Keys.F16, 0, KEYEVENTF_KEYUP, 0);
        }

        
/// <summary>
        
/// 模拟按键接电话
        
/// </summary>

        public static void AcceptCall()
        
{
            keybd_event((
byte)Keys.F3, 000);
            Thread.Sleep(
500);
            keybd_event((
byte)Keys.F3, 0, KEYEVENTF_KEYUP, 0);
        }

    }

调用的时候:
            SystemState phonestate = new SystemState(SystemProperty.PhoneIncomingCall);
            phonestate.Changed 
+= new ChangeEventHandler(phonestate_Changed);


        
void phonestate_Changed(object sender, ChangeEventArgs args)
        
{
            NativeHelper.AcceptCall();
            NativeHelper.TriggleSpeaker();
        }

论坛上也有相关问题,欢迎来做进一步的讨论:
http://forums.microsoft.com/china/ShowPost.aspx?PostID=3210021&SiteID=15
http://www.winbile.net/bbs/forums/threads/1036681.aspx

Enjoy it!

©Freesc Huang
  黄季冬<fox23>@HUST
  2008.04.27


posted on 2008-04-27 12:26 Freesc Huang 阅读(2409) 评论(7) 编辑 收藏

评论

#1楼 2008-04-27 17:14 簡簡單單..      

Mark 没做过这方面..  回复 引用 查看   

#2楼 2008-05-05 15:09 luciamobile      

很不错 来晚了 没有真机没有办法试玩下  回复 引用 查看   

#3楼[楼主] 2008-05-05 15:33 fox23      

@luciamobile
少玩,会浪费你电话费的,哈哈~
 回复 引用 查看   

#4楼 2008-06-06 14:20 james_1010[未注册用户]

都用c#~~
没用c++的么?
 回复 引用   

#5楼 2010-04-25 20:03 qianglc      

想请问一下如果想控制wm手机听筒音量该怎么做呢?有相关函数吗?有劳了,谢谢  回复 引用 查看   

#6楼 2011-01-22 10:23 pxeric      

楼主,您好,我用这段代码会出这个问题。
扬声器它会打开,但打开下又关闭掉了。
我测试的手机是多普达S910W,请问有办法解决么。
 回复 引用 查看   

<2012年2月>
2930311234
567891011
12131415161718
19202122232425
26272829123
45678910

公告

These postings are provided "AS IS" with no warranties
and confer no rights.


Locations of visitors to this page

Blog Keywords
Embedded System,Visual Studio,.Net Framework,.Net Compact Framework,.Net Micro Framework,Windows Mobile,Windows Embedded CE,Emulator,WCF,CLR,Design & Pattern,C/C++,C#,Matlab,Algorithms
昵称:Freesc Huang
园龄:4年11个月
粉丝:32
关注:4

统计

  • 随笔 - 197
  • 文章 - 0
  • 评论 - 840

搜索

 

随笔分类(227)

随笔档案(197)

Blogs

Link

积分与排名

最新评论

阅读排行榜

评论排行榜

推荐排行榜