读取其他应用的manifest文件
来源:互联网 发布:illustrator mac下载 编辑:程序博客网 时间:2024/05/17 23:00
public class InterruptNotifyActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
AssetManager mCurAm;
List<PackageInfo> l = getPackageManager().getInstalledPackages(
PackageManager.GET_DISABLED_COMPONENTS);
for (PackageInfo pi : l) {
if ((pi.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 0) {
try {
mCurAm = createPackageContext(pi.packageName, 0)
.getAssets();
Resources mCurResources = new Resources(mCurAm,
getResources().getDisplayMetrics(), null);
XmlResourceParser xml = mCurAm
.openXmlResourceParser("AndroidManifest.xml");
String str = getXMLText(xml, mCurResources);
if (str != null) {
System.out.println(pi.packageName+" manifest begin");
System.out.println(str);
System.out.println(pi.packageName+" manifest end");
System.out.println("***************************************************************");
System.out.println("\n\n\n");
}
} catch (NameNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
private String getXMLText(XmlResourceParser xrp, Resources currentResources) {
StringBuffer sb = new StringBuffer();
int indent = 0;
try {
int eventType = xrp.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
// for sb
switch (eventType) {
case XmlPullParser.START_TAG:
indent += 1;
sb.append("\n");
insertSpaces(sb, indent);
sb.append("<" + xrp.getName());
sb.append(getAttribs(xrp, currentResources));
sb.append(">");
break;
case XmlPullParser.END_TAG:
indent -= 1;
sb.append("\n");
insertSpaces(sb, indent);
sb.append("</" + xrp.getName() + ">");
break;
case XmlPullParser.TEXT:
sb.append("" + xrp.getText());
break;
case XmlPullParser.CDSECT:
sb.append("<!CDATA[" + xrp.getText() + "]]>");
break;
case XmlPullParser.PROCESSING_INSTRUCTION:
sb.append("<?" + xrp.getText() + "?>");
break;
case XmlPullParser.COMMENT:
sb.append("<!--" + xrp.getText() + "-->");
break;
}
eventType = xrp.nextToken();
}
} catch (IOException ioe) {
} catch (XmlPullParserException xppe) {
}
return sb.toString();
}
protected void insertSpaces(StringBuffer sb, int num) {
if (sb == null)
return;
for (int i = 0; i < num; i++)
sb.append(" ");
}
private CharSequence getAttribs(XmlResourceParser xrp,
Resources currentResources) {
StringBuffer sb = new StringBuffer();
for (int i = 0; i < xrp.getAttributeCount(); i++)
sb.append("\n" + xrp.getAttributeName(i) + "=\""
+ resolveValue(xrp.getAttributeValue(i), currentResources)
+ "\"");
return sb;
}
private String resolveValue(String in, Resources r) {
if (in == null || !in.startsWith("@") || r == null)
return in;
try {
int num = Integer.parseInt(in.substring(1));
return r.getString(num);
} catch (NumberFormatException e) {
return in;
} catch (RuntimeException e) {
// formerly noted errors here, but simply not resolving works better
return in;
}
}
}
- 读取其他应用的manifest文件
- 读取其他格式的文件
- Android读取其他应用的SharedPreferences
- Android 读取Manifest文件下的versionCode和versionName
- libxml读取xml文件的其他方法
- libxml读取xml文件的其他方法
- android 读取manifest的数据
- 读取jar包MANIFEST.MF文件
- 调用其他应用打开文件的方法
- Android问题—读取其他应用的SharedPreferences
- Android对其他应用/data分区下文件的读取
- Android 读取Manifest文件下Application 等节点下的meta-data自定义数据
- Android读取Manifest文件下Application等节点下的metadata自定义数据
- 51.如何使用FileInputStream读取其他文件的内容
- jsp 读取项目外其他目录的文件
- C# 如何读取被其他进程占用的文件
- MANIFEST.MF文件的格式
- MANIFEST.MF文件的格式
- wp7读取网络上和本地的xml文件
- UPnP协议编程实践
- 网页视觉设计小技巧
- 图片相关操作(截取,缩略,翻转。。。。)
- 怎么定位图表区域在MsChart上的位置?
- 读取其他应用的manifest文件
- JS表单判断函数代码大全
- 网页中的平衡、对比、连贯和留白
- Raknet和新版本MySQL兼容性问题
- 云存储相关网站汇总
- nux内核中Kconfig文档的作用以及Kconfig的语法
- 去掉首尾空格然中间只能有一个空格
- 系统部署
- Listview 和 button imageButton 等共存问题