Android jar包里面有assets目录下有文件,APP的assets里面也有文件,如何读呢?
来源:互联网 发布:软件测试的目标 编辑:程序博客网 时间:2024/04/30 07:01
jar 包中可以写 assets文件夹, APP里面同时也可以写assets,但是只要assets下面的文件不同名就可以了,忒棒 !!!
如果assets目录下有文件的,导出jar时需要注意,把assets目录勾选上
package com.jds.readxml;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserFactory;
import carnetapp.mms.command.factory.CommandSendHelper;
import android.support.v7.app.ActionBarActivity;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.content.res.AssetManager;
import android.os.Bundle;
public class MainActivity extends ActionBarActivity implements OnClickListener{
private InputStream inputStream;
List<String> invokePermission = new ArrayList<String>();
List<String> callbackPermission = new ArrayList<String>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.btn_send).setOnClickListener(this);
loadPermissions();
boolean result = checkPermission(CheckAction.INVOKE,
"255");
if (result) {
Log.d("per", "congratulations you have the permission");
} else {
Log.d("per", "you don't have the permission to invoke this method");
}
}
/**
* 加载权限表
*/
private void loadPermissions() {
AssetManager assetManager = getAssets();
try {
inputStream = assetManager.open("permission2.xml");
if (inputStream != null) {
parseXML(inputStream);
}
for (int i = 0; i < invokePermission.size(); i++) {
System.out.println("request method " + invokePermission.get(i));
Log.d("per", "request method " + invokePermission.get(i));
}
for (String s : callbackPermission) {
System.out.println("callback method " + s);
Log.d("per", "callback method " + s);
}
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 检查权限
*/
private boolean checkPermission(CheckAction action, String needPermission) {
if (TextUtils.isEmpty(needPermission.trim()))
return false;
if (action == CheckAction.INVOKE) {
// 调用方法
for (int i = 0; i < invokePermission.size(); i++) {
if (needPermission.endsWith(invokePermission.get(i).trim())) {
return true;
}
}
} else {
// 设置回调监听
// 调用方法
for (int i = 0; i < callbackPermission.size(); i++) {
if (needPermission.endsWith(callbackPermission.get(i).trim())) {
return true;
}
}
}
return false;
}
/**
*
* @param 解析XML文件
* @return
*/
private boolean parseXML(InputStream in) {
if (in == null)
return false;
List<String> tempList = null; // 临时的数据集
String method = null;
try {
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
XmlPullParser parser = factory.newPullParser();
parser.setInput(in, "UTF-8");
// 产生第一个事件
int eventType = parser.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
switch (eventType) {
// 判断当前事件是否为文档开始事件
case XmlPullParser.START_DOCUMENT:
tempList = new ArrayList<String>(); // 初始化权限集合
break;
// 判断当前事件是否为标签元素开始事件
case XmlPullParser.START_TAG:
if (parser.getName().equals("request")) { // 判断开始标签元素是否是book
if (tempList != null && tempList.size() > 0) {
tempList.clear();
}
} else if (parser.getName().equals("callback")) {
if (tempList != null && tempList.size() > 0) {
tempList.clear();
}
} else if (parser.getName().equals("method")) { // 判断开始标签元素是否是method
eventType = parser.next();// 让解析器指向method属性的值
// 得到method标签的属性值
method = parser.getText();
}
break;
// 判断当前事件是否为标签元素结束事件
case XmlPullParser.END_TAG:
if (parser.getName().equals("request")) {
if (tempList != null) {
invokePermission.addAll(tempList);
}
} else if (parser.getName().equals("callback")) {
if (tempList != null) {
callbackPermission.addAll(tempList);
}
} else {
// 得到方法对象
tempList.add(method);
}
break;
}
// 进入下一个元素并触发相应事件
eventType = parser.next();
}
} catch (Exception e) {
e.printStackTrace();
return false;
}
return true;
}
@Override
public void onClick(View v) {
CommandSendHelper.getInstance().askForBTConnectionState();
}
}
0 0
- Android jar包里面有assets目录下有文件,APP的assets里面也有文件,如何读呢?
- 如何解压assets目录下的压缩包文件
- Xamarin.Android 如何使用Assets目录下的文件
- Android 读取assets目录下的文件
- Android 读取 assets目录下的文件
- 根据已有项目下lib包里jar文件生成maven的pom.xml 里面所有依赖
- Assets目录下的文件大小是否有限制?
- App系列------如何把文件放到assets目录下
- Android:复制Assets下所有的文件(遍历每一个文件夹),并存入sdcard里面
- DexClassLoader自定义加载Assets目录下的dex、jar文件
- Maven 的Android项目里面的jar包(本地)、library及libs目录下so文件如何引用
- java project项目打jar包过程(里面有引用第三方的jar和dll文件)
- 如何读取Jar包里面的文件
- 如何读取Jar包里面的文件
- ios中沙盒里面的文件有哪些?
- Android复制Assets目录下的文件到指定目录
- Android复制assets目录下的文件到另一个目录
- Android读取assets目录下所有文件
- android studio系列之获取数字签名
- 视频播放相关
- event.button在火狐和IE下的不同
- 全球顶级专家为你解读:什么是真正的 DevOps?
- HTTPS那些事(一)HTTPS原理
- Android jar包里面有assets目录下有文件,APP的assets里面也有文件,如何读呢?
- qt5.3.1+opencv2.4.9编译环境的搭建
- 手机端页面需要用rem设置字体大小的js代码
- Android google gcm(推播机制) 延迟问题解决方案
- 一年过去了,打算过年回家了
- Spring包详解
- 异常
- 给成员变量前加m,自动提示变量
- HTTPS那些事(二)SSL证书