NFC在android 2.3 version的时候,只是简单地scan tag/Discover tag,到了2.3.3的版本才丰富了起来,还有P2P的功能,并且例子和document也具体了。
所以在学习NFC的时候除了看Sample里面的NFC Demo以为,还可以看android 2.3.3里面源码中的package/apps/Tag和APIDemo中的NFC
好像Android Development的网站在国内上不了,真是悲哀呀!
plist文件广泛使用在Mac系统上,iPhone程序也在很多地方直接操作该文件。该文件类型实际上就是个XML,而且格式相当简单一致,这里给文件结构给出讲解,也顺便复习一下快忘光的java。
首先plist是xml,版本1.0,字符集始终采用utf-8,然后DOCTYPE是plist,publicID和systemID也是固定的值,然后就是标准的plist节点,这个节点将视为根节点,对应在plist视图中的Root,注意根节点有一个属性是version,一般是1.0。
每个节点,包括根节点都有其类型,分容器型和值型,容器型有DICTIONARY和ARRAY,DICTIONARY就是键值对应,ARRAY就是简单罗列;值型则有BOOLEAN,DATE,DATA,NUMBER,STRING。对应到xml文件中,DICTIONARY简写成dict,ARRAY还是写成array,BOOLEAN只有true和false两个值,其他的都顾名思义。
那么层次关系也是很明确的,只有容器型才能有下层,值形只能做容器类里的子项,如果是dict类型,则必须填写键的名字和值的内容,反应到xml文件里就是<key>xxx</key><string>yyy</string>,当然后一个string完全可能是</false>等其他类型。而array里的子项则没有键的名字,直接依次写<string>xxx</string>即可,然后那些项就会被取名为Item 1之类。同时容器型的子项完全可以是容器型,层层包裹都没关系。
修正一下,原来的代码有些问题,用FileWriter使用的是系统默认编码,与OutputFormat制定的utf-8无关,改为OutputStream
String pListPath = "/temp2.pList"; String xmlPath = "/en error_code.xml"; File inputXml=new File(xmlPath); OutputFormat format = new OutputFormat(" ", true, "utf-8"); Document listDoc = DocumentHelper.createDocument(); listDoc.setXMLEncoding("utf-8"); DocumentFactory documentFactory=new DocumentFactory(); DocumentType documentType=documentFactory.createDocType("plist", "-//Apple//DTD PLIST 1.0//EN", "http://www.apple.com/DTDs/PropertyList-1.0.dtd"); listDoc.setDocType(documentType); Element pB = listDoc.addElement("plist"); pB.addAttribute("version", "1.0"); Element di = pB.addElement("dict"); SAXReader saxReader = new SAXReader(); try { Document readDoc = saxReader.read(inputXml); Element employees = readDoc.getRootElement(); for(Iterator i = employees.elementIterator(); i.hasNext();) { Element employee = (Element) i.next(); Element key = di.addElement("key"); key.setText(employee.attributeValue("name").replaceAll("e", "KEY_ERROR_CODE_")); Element st = di.addElement("string"); st.setText(employee.getTextTrim()); } OutputStream fos = new FileOutputStream(pListPath); XMLWriter xmlWriter=new XMLWriter(fos, format); xmlWriter.write(listDoc); xmlWriter.close(); } catch (DocumentException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }
随手写了个把xml里面的错误代码转到plist里的方法,随便看看。
昨天在调用AVD 2.1up 是出现错误 原因是找不到 avd的路径 仔细找找发现 我的用户名 中文于是就出现啦 找不到路径再看看 google发现其不支持中文,于是就设置了 下环境变量 如下:
打开系统属性-->环境变量—>在“系统变量”那选择“新建”-->变量名为 "ANDROID_SDK_HOME” (注意,这个变量名不能改变,只能是这个名字!),然后把变量值改为你想把AVD所在的".android”文件夹放置的位置,比如:
E:\SoftwareSetup\Android是我的;当然 也可以更改成其它 的路径
搞定 嘿嘿(注意:如果您前设置了 avd 请把 您在系统用户下的 .android 删除 再重启 eclipse 或myeclipse 在设置 )