最近一个是工作比较忙,一个是自己有点懒了,几乎没有写博客,今天有点时间更新一下博客。
上次写phonegap简单的写了一下android环境的搭建,在写完了上篇文章之后,phonegap马上就更新到了2.5.0,所以这次写博客也是用的这个版本。
在开发的过程中,我们为了在不同平台上使用相同的代码,所以有时候需要更具平台去写一些不能通用的代码,这时候我们就可以使用phonegap提供的device接口,获得设别的相关信息。
我写的代码基本就是官方文档中的,只是加入了自己的一点解释,如果你感觉没有价值,那就可以飘过,还请手下留情。
首先将js和jar文件更新到2.5.0,然后在工程中的AndroidManifest.xml加入<uses-permission android:name="android.permission.READ_PHONE_STATE" />,对于这个配置对于不同的设备是不相同的,具体查看文档。
代码如下:
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <meta name="format-detection" content="telephone=no" /> <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" /> <title>Device</title> </head> <body> <p id="deviceProperties">Loading device properties...</p> <script type="text/javascript" src="/blog_article/js/cordova-2.5.0.js"></script> <script type="text/javascript"> /* * deviceready事件 设备初始化phonegap所有的API触发的事件 * 建议将所有的业务代码放到此事件的回调函数中,以免发生不必要的错误 */ document.addEventListener("deviceready", onDeviceReady, false); function onDeviceReady() { var element = document.getElementById('deviceProperties'); element.innerHTML = 'Device Name: ' + device.name + '<br />' + 'Device Cordova: ' + device.cordova + '<br />' + 'Device Platform: ' + device.platform + '<br />' + 'Device UUID: ' + device.uuid + '<br />' + 'Device Model: ' + device.model + '<br />' + 'Device Version: ' + device.version + '<br />'; } </script> </body> </html>
工程的目录结构如下,主要是assets中的内容,确保你的index.html能够正常的引用到js。
程序运行效果如下:(由于是在模拟器中运行,可能有些值返回的跟真实情况不同)
相信大家都能看懂这是什么意思。
还有一点说明,从2.3.0开始device.name就不建议使用了,使用device.model代替.
去年公司经历了一个快速扩张的过程,到今年春节后公司在团队成长方面出现了很大的问题,尤其是大批量的员工离职,导致人员流失严重,有的同事戏称“优游培训班”。意思就是所有去年招进来的员工到今年离开公司都是学到一点技术就拍拍屁股走人了,感觉就像把公司当成了培训机构一样。我临时被调去管理这样一个感觉风雨飘摇的团队,但我面对的第一个重大的问题就是这个团队已经势气低下到极点。近些天做了一些总结和分析,在这里贴出,也是是一点经验。
对于公司目前的状况我总结了几点团队士气低下的原因:
1.游戏团队中出现耸人听闻的绯闻。比如陈亮事件导致的群体效应,我们都可想而知.
2.团队中出现对立的帮派。这极为严重,一旦出现了这样的问题,团队间就无法沟通,尤其是在游戏开发这样需要高度团队合作的行业,后果更严重。听说过公司和团队有这样垮掉的.
3.游戏团队中出现混日子和不服从领导管理的现象。每个团队中似乎都有难以驯服的野马,虽然往往难以驯服的野马都是千里良驹,但是若出现了这样的员工其他员工的士气也一定大打折扣。
4.团队优先处理的事情或分析内容总是改变,你的团队成员很快就被搞糊涂了,而且士气会低落下来。
以上就是分析团队士气的低下原因,当然还有氛围和文化等等一系列问题,但不再这里阐述.
那么目前解决问题的方法有以下几种:
1.把握团队温度.进行交谈,保证他们乐于从事正在干的事情.目前状况是很多同事不乐于自己所做的工作.
2.要让团队同事了解公司每一次决定和变化.保证信息传递的一致性.
3.组织有意义的团队活动,使团队成员了解合作的价值和意义.
团队活动就不在这里贴出,其实我认为团队当中每一个人都是马上能够胜任岗位的,目前情况是公司喜欢招些没有经验的人来培养,其实这种的成本不比招有经验的人成本低,一想就知道,产品研发中途换人的成本往往更大。如果有一天我创业了,我只会倾向招精英,虽然单价高但很多问题不会爆发,团队会直接进入磨合期,磨合过后就剩下爆发了。所以强强联手虽不一定就能成功,但至少成功概率会大很多!
1楼5iasp1小时前公司的企业文化很重要Send(发送方):
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.net.SocketException; public class SendDemo1 { private static final int PORT = 8080; private static final String IP = "localhost"; public static void main(String[] args) { sendHandler(); } private static void sendHandler(){ DatagramSocket sendSocket = null; try { while(true){ //创建套接字 sendSocket = new DatagramSocket(); //键盘录入 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String send = br.readLine(); byte[] buf = send.getBytes(); //设定数据包内容,长度,发送到的地址和端口 DatagramPacket dp = new DatagramPacket(buf, buf.length, InetAddress.getByName(IP), PORT); //发送数据包 sendSocket.send(dp); } } catch (SocketException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }finally{ if(sendSocket != null){ sendSocket.close(); } } } }
Receive(接收方):
import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.SocketException; public class ReceiverDemo1 { private static final int PORT = 8080; public static void main(String[] args) { receiveHandler(); } private static void receiveHandler() { DatagramSocket receiveSocket = null; try { //在8080端口监听 receiveSocket = new DatagramSocket(PORT); //while循环,一直在等待接收数据 while(true){ //创建一个包,并接收数据 byte[] buf = new byte[1024]; DatagramPacket dp = new DatagramPacket(buf, buf.length); receiveSocket.receive(dp); //取得IP地址和包里的数据内容 String ip = dp.getAddress().getHostAddress(); String data = new String(dp.getData(), 0, dp.getLength()); System.out.println(ip + ":" + data); } } catch (SocketException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }finally{ if(receiveSocket != null){ receiveSocket.close(); } } } }
先启动接收方,再启动发送方