android 獲取已安裝 錯誤代碼,android獲取手機已經安裝的app信息

Android獲取手機已安裝APP(系統/非系統)

效果圖

ef6a00c8727c169b95fc772ac4d9d8ca.png

主體代碼

private ListView mlistview;

private ListpackageInfoList;

private ListapplicationInfoList;

private MyAdapter myAdapter;

private PackageManager pm;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main3);

mlistview=findViewById(R.id.mlistview);

getAllAppNames();

myAdapter=new MyAdapter(applicationInfoList);

mlistview.setAdapter(myAdapter);

myAdapter.notifyDataSetChanged();

mlistview.setOnItemClickListener(new AdapterView.OnItemClickListener() {

@Override

public void onItemClick(AdapterView> parent, View view, int position, long id) {

doStartApplicationWithPackageName(applicationInfoList.get(position).getPackageName());

}

});

}

//自定義適配器

public class MyAdapter extends BaseAdapter{

private Listlist;

public MyAdapter(Listlist){

this.list=list;

}

@Override

public int getCount() {

return list.size();

}

@Override

public Object getItem(int position) {

return list.get(position);

}

@Override

public long getItemId(int position) {

return position;

}

@Override

public View getView(int position, View convertView, ViewGroup parent) {

View view=null;

if(convertView==null){

view=LayoutInflater.from(Main3Activity.this).inflate(R.layout.mlistview_layout,null);

}else{

view=convertView;

}

TextView tv_packagename=view.findViewById(R.id.tv_packagename);

TextView tv_appname=view.findViewById(R.id.tv_appname);

ImageView img=view.findViewById(R.id.img);

tv_appname.setText(list.get(position).getName());

tv_packagename.setText(list.get(position).getPackageName());

img.setImageDrawable(list.get(position).getIcon());

return view;

}

}

public void getAllAppNames(){

pm=getPackageManager();

獲取到所有安裝了的應用程序的信息,包括那些卸載了的,但沒有清除數據的應用程序

// packageInfoList=pm.getInstalledPackages(PackageManager.GET_UNINSTALLED_PACKAGES);

applicationInfoList=new ArrayList<>();

Listlist = pm.getInstalledApplications(PackageManager.GET_UNINSTALLED_PACKAGES);

Collections.sort(list, new ApplicationInfo.DisplayNameComparator(pm));// 排序

Log.e("-------",list.size()+"");

applicationInfoList.clear();

for (int i=0;iresolveinfoList = getPackageManager()

.queryIntentActivities(resolveIntent, 0);

if(resolveinfoList.size() == 0){

return;

}

ResolveInfo resolveinfo = resolveinfoList.iterator().next();

if (resolveinfo != null) {

String packageName = resolveinfo.activityInfo.packageName;

//App啟動的Activity

String className = resolveinfo.activityInfo.name;

// LAUNCHER Intent

Intent intent = new Intent(Intent.ACTION_MAIN);

intent.addCategory(Intent.CATEGORY_LAUNCHER);

// 設置ComponentName參數1:packagename參數2:啟動的Activity

ComponentName cn = new ComponentName(packageName, className);

intent.setComponent(cn);

startActivity(intent);

}

}

// 構造一個AppInfo對象 ,并賦值

private AppInfo getAppInfo(ApplicationInfo app) {

AppInfo appInfo = new AppInfo();

appInfo.setName(app.loadLabel(pm).toString());

appInfo.setIcon(app.loadIcon(pm));

appInfo.setPackageName(app.packageName);

return appInfo;

}

這里是定義的實體bean

public class AppInfo implements Serializable{

/** 序列號 */

private static final long serialVersionUID = -6660233212727684115L;

/** 名稱 */

public String name;

/** (路徑) */

public String path;

/** 圖標 */

public Drawable icon;

/** 包名 */

public String packageName;

public static long getSerialVersionUID() {

return serialVersionUID;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getPath() {

return path;

}

public void setPath(String path) {

this.path = path;

}

public Drawable getIcon() {

return icon;

}

public void setIcon(Drawable icon) {

this.icon = icon;

}

public String getPackageName() {

return packageName;

}

public void setPackageName(String packageName) {

this.packageName = packageName;

}

}

這里是mlistview_layout.xml的布局代碼

mlistview_layout.xml布局效果圖

b557afb2d84c7dd801084bf1def4bbbb.png

這里是activity_main3.xml布局代碼

activity_main3.xml效果圖

c3d95c0c55132a078f2c636d132bcce0.png

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/534743.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/534743.shtml
英文地址,請注明出處:http://en.pswp.cn/news/534743.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

android與ios ui切圖關系,APP-IOS與Android界面設計與切圖

做一全套的APP設計&#xff0c;流程是&#xff1a;1、界面設計&#xff1a;設計IOS界面&#xff1b;設計Android界面。2、切圖&#xff1a;切IOS的2倍圖和3倍圖&#xff1b;切Android的hdpi,xhdpi,xxhdpi這三個尺寸的圖。3、標注&#xff1a;以px為單位標注IOS界面的尺寸&#…

js禁止鼠標滑輪_js實現鼠標滑動到某個div禁止滾動

本文實例為大家分享了js實現鼠標滑動到某個div禁止滾動的具體代碼&#xff0c;供大家參考&#xff0c;具體內容如下項目中碰到一個場景就是當鼠標滑倒某個div的時候&#xff0c;滑動鼠標頁面不再滾動。這里主要是當鼠標滑動到該div時&#xff0c;監聽滾輪事件并通過preventDefa…

android app應用后臺休眠,安卓手機鎖屏后程序自動關閉,怎么設置手機app允許鎖屏后臺運行...

原標題&#xff1a;安卓手機鎖屏后程序自動關閉&#xff0c;怎么設置手機app允許鎖屏后臺運行安卓手機鎖屏后&#xff0c;很多程序就會自動關閉&#xff0c;實際上&#xff0c;這是安卓手機的一種保護機制。為了使系統能夠流暢穩定的運行以及更加省電&#xff0c;它都會在手機鎖…

ps怎么清屏_黑洞PS大賽刷屏!最后一張扎心了……

事件視界望遠鏡(EHT)項目組和中國科學院共同在上海天文臺發布由EHT“拍下”的人類歷史上首張黑洞照片這意味著人類成功獲得了超大黑洞的第一個直接視覺證據黑洞首次露出真容&#xff01;據說宇宙誕生了138億年年齡最大的黑洞也已經超過了100億歲經過了這么久黑洞家族的成員才終…

linux和windows和鴻蒙,linux很好,但為何大家都用Win,鴻蒙系統站錯陣營了嗎?

原標題&#xff1a;linux很好&#xff0c;但為何大家都用Win&#xff0c;鴻蒙系統站錯陣營了嗎&#xff1f;由目前已知信息可知&#xff0c;華為“鴻蒙系統”很可能基于linux開源程序搭建&#xff0c;這個特點與蘋果微軟由很大不同。蘋果手機目前主要使用Objective-C程序語言開…

centos7磁盤邏輯分區命令_CentOS7 磁盤分區(主分區、擴展分區和邏輯分區)的創建、掛載與刪除...

創建磁盤分區查看磁盤分區情況&#xff1a;fdisk -l[rootmodel ~]# fdisk -l //查看系統中所有磁盤的分區列表Disk/dev/sda: 107.4 GB, 107374182400 bytes, 209715200sectorsUnits sectors of 1 * 512 512bytesSector size (logical/physical): 512 bytes / 512bytesI/O size…

php使用webservivce_JWS服務開發使用指南

均支持該版本&#xff0c;主要你的web.xml文件中必須制定2.5版本xmlversion"1.0"encoding"UTF-8"?><web-appxmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xmlns"http://java.sun.com/xml/ns/javaee"xmlns:web"ht…

android sdk是灰的,Android Studio 2.3 sdk管理器標簽灰顯

Android Studio 2.3 - >配置 - > SDK管理器。 這些選項卡呈灰色顯示&#xff1a; SDK工具&#xff0c;SDK更新站點。此外&#xff0c;“Show Package Details”復選框呈灰色。 系統正常更新。沒有錯誤消息。Android Studio 2.3 sdk管理器標簽灰顯我認為這發生在Studio 2.…

android layer陰影,Android Layer-List實現自定義Shape陰影

一、給右側和底層加陰影android:left"2dp"android:top"2dp">android:angle"270"android:endColor"#0F000000"android:startColor"#0F000000" />android:bottomLeftRadius"6dip"android:bottomRightRadius&q…

localdatetime 默認時間_java中的時間與時區:LocalDateTime和Date

LocalDateTimeLocalDateTime本身不包含時區信息&#xff0c;它存儲的是年、月、日、時分秒&#xff0c;納秒這樣的數字。在不同的時區下&#xff0c;這樣的數字代表不同的時間。比如一個LocalDateTime存儲2020-01-01 08&#xff1a;00&#xff1a;00&#xff0c;這里省略納秒。…

html 拖拽坐標,Html+css實現拖拽導航條

div橫向拖拽排序body, div {padding: 0px;margin: 0px;}.box {position: relative;margin-left: 15px;padding: 10px;padding-right: 0px;width: 810px;border: blue solid 1px;}.box ul{list-style: none;overflow: hidden;padding: 0;margin:0;}.drag {float: left;border: #…

seata 如何開啟tcc事物_微服務分布式事務4種解決方案實戰

分布式事務分布式事務是指事務的參與者&#xff0c;支持事務的服務器&#xff0c;資源服務器分別位于分布式系統的不同節點之上&#xff0c;通常一個分布式事物中會涉及到對多個數據源或業務系統的操作。典型的分布式事務場景&#xff1a;跨銀行轉操作就涉及調用兩個異地銀行服…

python redis 哨兵_Redis哨兵機制

概述上篇文章主要說了Redis 復制的內容&#xff0c;但 Redis 復制有一個缺點&#xff0c;當主機 Master 宕機以后&#xff0c;我們需要人工解決切換&#xff0c;比如使用slaveof no one 。實際上主從復制并沒有實現&#xff0c;高可用&#xff0c; 高可用側重備份機器&#xff…

labview自動生成html,使用LabVIEW實現網頁數據提取及交互.pptx

使用 LabVIEW 控制IE或WebBrowser實現網頁數據的提取和交互By GSD&#xff1a;attraction - 張生斌2013.1.11可能會遇到的問題網頁能否被程序控制&#xff0c;程序和網頁如何通信&#xff1f;如何下載網頁中我們所關注的數據&#xff1f;如何用程序修改網頁中表單的內容&#x…

pdf python定位_如何使用PyPDF2獲取PDF定位

我正在使用Python/Django。PyPDF2閱讀我目前的pdf。如何使用PyPDF2獲取PDF定位我想閱讀我已經保存的pdf文件&#xff0c;并獲得pdf內單頁的方向。我期望能夠確定頁面是橫向還是縱向。tempoutpdffilelocation settings.TEMPLATES_ROOT nameOfFinalPdfpageOrientation pageToE…

android 內容顯示欄,android – 在工具欄下顯示內容

您好我試圖簡單地將我的內容放在工具欄下面,但是當我運行我的應用程序時,當它應該低于它時,一些內容隱藏在它后面.我已經閱讀了關于使用框架布局來嘗試將其分開但我已經陷入困境.我目前正在使用隨軟件提供的基本android studio導航抽屜模板,并想知道我必須做出哪些更改.我的協調…

ios nslog 例子_iOS 典型內存泄露案例 - zhenshan2013的個人空間 - 51Testing軟件測試網 51Testing軟件測試網-軟件測試人的精神家園...

最近進行iOS 安全黑匣子的測試,在Demo中通過不斷的點擊調加密接口,同時通過蘋果自帶instrument的leak工具監控,發現典型的內存泄漏,監控圖如下:上圖中紅色的部分表示該操作觸發的代碼有內存泄漏的可能,于是拿出源代碼來研究一番,源代碼如下://加密接口-(IBAction)encrypt:(id)s…

HTML餅狀圖中心添加文字,echarts餅狀圖環形中間動態文字

let currName "";let myChart echarts.getInstanceByDom(document.getElementById(‘chart-panel‘));//console.log(myChart);myChart.on(‘mouseover‘, (params) >{currNameparams.name;console.log(params)let opmyChart.getOption();let _label{normal:{sho…

pos共識機制_OK區塊鏈60講 | 第17集:什么是PoS共識機制

什么是PoS共識機制https://www.zhihu.com/video/1196092110837805056《OK區塊鏈60講》是由OKEx&#xff06;新浪科技聯合出品的區塊鏈科普動畫視頻&#xff0c;針對區塊鏈零基礎用戶&#xff0c;通過系列文章、科普動畫等形式&#xff0c;從概念、技術、應用等角度&#xff0c;…

html溢出左右滾動,html-選項卡溢出時水平滾動

我在容器中有一個基本表。 該表將包含約25列。 我正在嘗試在表格溢出時添加水平滾動條&#xff0c;現在過得很艱難。現在正在發生的情況是&#xff0c;表格單元格通過自動調整單元格的高度并保持固定的表格寬度來容納單元格的內容。對于我的方法為何無法解決此問題的建議&#…