如何从Python代码中直接访问Android的Service(3)

目前并没有实现所有的WifiService的功能,但是像startScan,getScanResults,setWifiEnabled,getWifiEnabledState,getDhcpInfo,setWifiApEnabled这些主要的接口已经实现了,其它接口没有实现并非是因为不能实现,而是比较繁琐,暂时未实现而己,后面会不断的完善。

再来看下测试代码:

test.py


import WifiService 

WifiService.setWifiEnabled(True) 

WifiService.startScan(True) 

print WifiService.pingSupplicant() 

print WifiService.getConfigFile() 

for i in range(10): 

time.sleep(1.0) 

result = WifiService.getScanResults() 

if result: 

print result 

break

执行后将会打印出搜索到的Wifi信息。

另外就是代码的编译问题了。代码必须在Android的源代码下进行编译。我试过在ndk上进行编译,经过一番努力,通过链接事先编译好的C++ binder库,也成功编译通过,但是程序不能正常运行,这应该是预先编译出来的库和ndk的库存在兼容性问题造成的,或许通过在ndk上编译binder库可以避免这个问题,但是目前还没有作过尝试。 但是编译出来的代码应该可以运行在各个不同的版本,我在4.0和4.2版本的设备上作了简单的测试,事实证明在4.2上编译的代码可以在4.0上运行,但是考虑到android的诸多版本,各个版本多多少少有些兼容性问题,更详细的还必须比较各个版本的binder代码,并通过测试才能得到结果。

Python 的详细介绍请点这里
Python 的下载地址请点这里

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/5886a8e55bfd59716ea874ae9aef230a.html