<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<head><meta forua="true" http-equiv="Cache-Control" content="max-age=0" /></head>
<card title="Android通过点击Wifi物理按键（按键添加和处理）开启/关闭wifi的三个解决方法" id="card1">
<p> 游客</p><p>
标题:Android通过点击Wifi物理按键（按键添加和处理）开启/关闭wifi的三个解决方法<br/>
正文:<br/>
 实现方案需求：Android机器上有个Wifi物理按键，现在需求通过点击&amp;ldquo;wifi物理按键&amp;rdquo;能够快速的开启/关闭wifi。经过思考之后，拟出下面几种方案：方案一，在linux kernel的驱动中捕获&amp;ldquo;wifi物理按键&amp;rdquo;。在kernel的按键驱动中截获&amp;ldquo;wifi&amp;rdquo;按键，并对其进行处理：若是&amp;ldquo;wifi&amp;rdquo;是开启的，则关闭wifi；否则，打开wifi。方案二，在Android中添加一个服务，监听wifi按键消息。若监听到&amp;ldquo;wifi&amp;rdquo;按键，则读取wifi的状态：若是&amp;ldquo;wifi&amp;rdquo;是开启的，则关闭wifi；否则，打开wifi。方案三，在Android的input输入子系统的框架层中捕获wifi按键，并进行相应处理。若捕获到&amp;ldquo;wifi&amp;rdquo;按键，则读取wifi的状态：若是&amp;ldquo;wifi&amp;rdquo;是开启的，则关闭wifi；否则，打开wifi。方案一方案思路: 在linux kernel的驱动中捕获&amp;ldquo;wifi物理按键&amp;rdquo;。在kernel的按键驱动中截获&amp;ldquo;wifi&amp;rdquo;按键，并对其进行处理：若是&amp;ldquo;wifi&amp;rdquo;是开启的，则关闭wifi；否则，打开wifi。方案分析: 若采用此方案需要解决以下问题01，在kerne的按键驱动中捕获&amp;ldquo;wifi&amp;rdquo;按键。-- 这个问题很好实现。在kernel的按键驱动中，对按键值进行判断，若是wifi按键，则进行相应处理。02，在kernel中读取并设置wifi的开/关状态。-- 这个较难实现。因为wifi驱动的开/关相关的API很难获取到。一般来来说，wifi模组的驱动都是wifi厂家写好并以.ko文件加载的。若需要获取wifi的操作API，需要更厂家一起合作；让它们将接口开放，并让其它设备在kernel中可以读取到。03，在kernel中将wifi的状态上报到Android系统中。若单单只是实现02步，只是简单的能开/关wifi了；但还需要向办法让Android系统直到wifi的开/关行为。-- 可以实现，但是太麻烦了。方案结论: 实现难度太大！方案二方案思路: 在Android中添加一<br/><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1836&amp;Page=1">[&lt;&lt;]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1836&amp;Page=1">[[1]]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1836&amp;Page=2">[2]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1836&amp;Page=3">[3]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1836&amp;Page=38">[&gt;&gt;]</a><br/>
<br/>
<a href="wap.asp?act=Com&amp;id=1836">查看评论(0)</a><br/>
<a href="wap.asp?act=AddCom&amp;inpId=1836">发表评论</a><br/><br/>

<br/>

<br/>
<a href="http://camnpr.com/wap.asp">首页</a>
</p>
</card>
</wml>