android获取系统安装程序.doc
《android获取系统安装程序.doc》由会员分享,可在线阅读,更多相关《android获取系统安装程序.doc(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、如有侵权,请联系网站删除,仅供学习与交流android获取系统安装程序【精品文档】第 7 页PackageManager是个非常好的东西,其他的详细的细节等日后有时间整理PackageManager的功能:安装,卸载应用查询permission相关信息查询Application相关信息(application,activity,receiver,service,provider及相应属性等)查询已安装应用增加,删除permission清除用户数据、缓存,代码段等我们可以用PackageManager来显示系统安装的应用程序列表或者系统程序列表。注意了,这并不是获取当前的运行中的程序。废话先不多
2、说AppShowActivity.java Java代码 1. packagecom.loulijun.appshow; 2. importjava.util.ArrayList; 3. importjava.util.HashMap; 4. importjava.util.List; 5. importjava.util.Map; 6. importandroid.app.Activity; 7. importandroid.content.Context; 8. importandroid.content.pm.ApplicationInfo; 9. importandroid.conte
3、nt.pm.PackageInfo; 10. importandroid.content.pm.PackageManager; 11. importandroid.graphics.drawable.Drawable; 12. importandroid.os.Bundle; 13. importandroid.view.LayoutInflater; 14. importandroid.view.View; 15. importandroid.view.ViewGroup; 16. importandroid.widget.ImageView; 17. importandroid.widge
4、t.ListView; 18. importandroid.widget.SimpleAdapter; 19. importandroid.widget.TextView; 20. publicclassAppShowActivityextendsActivity 21. ListViewlv; 22. MyAdapteradapter; 23. ArrayListHashMapitems=newArrayListHashMap(); 24. Override25. publicvoidonCreate(BundlesavedInstanceState) 26. super.onCreate(
5、savedInstanceState); 27. setContentView(R.layout.main); 28. lv=(ListView)findViewById(R.id.lv); 29. /得到PackageManager对象 30. PackageManagerpm=getPackageManager(); 31. /得到系统安装的所有程序包的PackageInfo对象 32. /Listpacks=pm.getInstalledApplications(0); 33. Listpacks=pm.getInstalledPackages(0); 34. for(PackageIn
6、fopi:packs) 35. HashMapmap=newHashMap(); 36. /显示用户安装的应用程序,而不显示系统程序 37. /if(pi.applicationInfo.flags&ApplicationInfo.FLAG_SYSTEM)=0& 38. /(pi.applicationInfo.flags&ApplicationInfo.FLAG_UPDATED_SYSTEM_APP)=0) 39. /这将会显示所有安装的应用程序,包括系统应用程序 40. /map.put(icon,pi.applicationInfo.loadIcon(pm);/图标 41. /map.p
7、ut(appName,pi.applicationInfo.loadLabel(pm);/应用程序名称 42. /map.put(packageName,pi.applicationInfo.packageName);/应用程序包名 43. /循环读取并存到HashMap中,再增加到ArrayList上,一个HashMap就是一项 44. /items.add(map); 45. / /我想请问:这个上下有区别呀?46. /这将会显示所有安装的应用程序,包括系统应用程序 47. map.put(icon,pi.applicationInfo.loadIcon(pm);/图标 48. map.p
8、ut(appName,pi.applicationInfo.loadLabel(pm);/应用程序名称 49. map.put(packageName,pi.applicationInfo.packageName);/应用程序包名 50. /循环读取并存到HashMap中,再增加到ArrayList上,一个HashMap就是一项 51. items.add(map); 52. *参数:Context 53. *ArrayList(item的集合) 54. *item的layout 55. *包含ArrayList中的HashMap的key的数组 56. *key所对应的值的相应的控件id 57
9、. adapter=newMyAdapter(this,items,R.layout.piitem, 58. newStringicon,appName,packageName, 59. newintR.id.icon,R.id.appName,R.id.packageName); 60. lv.setAdapter(adapter); 61. classMyAdapterextendsSimpleAdapter 62. privateintappTo; 63. privateStringappFrom; 64. privateViewBinderappViewBinder; 65. priv
10、ateList?extendsMapappData; 66. privateintappResource; 67. privateLayoutInflaterappInflater; 68. publicMyAdapter(Contextcontext,List?extendsMapdata, 69. intresource,Stringfrom,intto) 70. super(context,data,resource,from,to); 71. appData=data; 72. appResource=resource; 73. appFrom=from; 74. appTo=to;
11、75. appInflater=(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 76. publicViewgetView(intposition,ViewconvertView,ViewGroupparent) 77. returncreateViewFromResource(position,convertView,parent,appResource); 78. privateViewcreateViewFromResource(intposition,ViewconvertView,V
12、iewGroupparent,intresource) 79. Viewv; 80. if(convertView=null) 81. v=appInflater.inflate(resource,parent,false); 82. finalintto=appTo; 83. finalintcount=to.length; 84. finalViewholder=newViewcount; 85. for(inti=0;icount;i+) 86. holderi=v.findViewById(toi); 87. v.setTag(holder); 88. else89. v=conver
13、tView; 90. bindView(position,v); 91. returnv; 92. privatevoidbindView(intposition,Viewview) 93. finalMapdataSet=appData.get(position); 94. if(dataSet=null) 95. return; 96. finalViewBinderbinder=appViewBinder; 97. finalViewholder=(View)view.getTag(); 98. finalStringfrom=appFrom; 99. finalintto=appTo;
14、 100. finalintcount=to.length; 101. for(inti=0;icount;i+) 102. finalViewv=holderi; 103. if(v!=null) 104. finalObjectdata=dataSet.get(fromi); 105. Stringtext=data=null?:data.toString(); 106. if(text=null) 107. text=; 108. booleanbound=false; 109. if(binder!=null) 110. bound=binder.setViewValue(v,data
15、,text); 111. if(!bound) 112. *自定义适配器,关键在这里,根据传递过来的控件以及值的数据类型, 113. *执行相应的方法,可以根据自己需要自行添加if语句。另外,CheckBox等 114. *集成自TextView的控件也会被识别成TextView,这就需要判断值的类型 115. if(vinstanceofTextView) 116. /如果是TextView控件,则调用SimpleAdapter自带的方法,设置文本 117. setViewText(TextView)v,text); 118. elseif(vinstanceofImageView) 119
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- android 获取 系统 安装 程序
限制150内