获取系统已安装应用列表
2017-08-30 15:19
447 查看
AppListActivity.java
header_list_view.xml
activity_app_list.xml
item_app_list.xml
package com.studio.listviewproject.listview; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.pm.ResolveInfo; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v7.app.AppCompatActivity; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; import com.studio.listviewproject.R; import java.util.List; public class AppListActivity extends AppCompatActivity { @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_app_list); ListView appListView = (ListView) findViewById(R.id.app_list_view); LayoutInflater layoutInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); View headerView = layoutInflater.inflate(R.layout.header_list_view, null); appListView.addHeaderView(headerView); final List<ResolveInfo> appInfos = getAppInfos(); appListView.setAdapter(new AppListAdapter(appInfos)); appListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { String packageName = appInfos.get(i).activityInfo.packageName; String className = appInfos.get(i).activityInfo.name; ComponentName componentName = new ComponentName(packageName, className); final Intent intent = new Intent(); intent.setComponent(componentName); startActivity(intent); } }); } /** * 获取所有的应用信息 * * @return */ private List<ResolveInfo> getAppInfos() { Intent intent = new Intent(Inten 4000 t.ACTION_MAIN, null); intent.addCategory(Intent.CATEGORY_LAUNCHER); return getPackageManager().queryIntentActivities(intent, 0); } public class AppListAdapter extends BaseAdapter { //这就是要填充的数据列表 List<ResolveInfo> mAPPInfos; public AppListAdapter(List<ResolveInfo> appNames) { mAPPInfos = appNames; } @Override public int getCount() { //有多少条数据 return mAPPInfos.size(); } @Override public Object getItem(int i) { //返回当前i位置的这一条 return mAPPInfos.get(i); } @Override public long getItemId(int i) { //返回当前i位置的这一条的ID return i; } @Override public View getView(final int i, View view, ViewGroup viewGroup) { //处理 view -- data 填充数据的一个过程 LayoutInflater layoutInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); view = layoutInflater.inflate(R.layout.item_app_list_view, null); ImageView appIconImageView = view.findViewById(R.id.app_icon_image_view); TextView appNameTextView = view.findViewById(R.id.app_name_text_view); appNameTextView.setText(mAPPInfos.get(i).activityInfo.loadLabel(getPackageManager())); appIconImageView.setImageDrawable(mAPPInfos.get(i).activityInfo.loadIcon(getPackageManager())); return view; } } }
header_list_view.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="80dp"> <ImageView android:layout_width="match_parent" android:layout_height="80dp" android:background="@drawable/pic"/> </LinearLayout>
activity_app_list.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <ListView android:id="@+id/app_list_view" android:layout_width="match_parent" android:layout_height="match_parent"></ListView> </LinearLayout>
item_app_list.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal"> <ImageView android:id="@+id/app_icon_image_view" android:layout_width="60dp" android:layout_height="60dp" android:src="@mipmap/ic_launcher" /> <TextView android:id="@+id/app_name_text_view" android:layout_width="match_parent" android:layout_height="60dp" android:gravity="center_vertical" android:paddingLeft="6dp" android:text="@string/app_name" android:textSize="20sp" /> </LinearLayout>
相关文章推荐
- [置顶] Android中高仿快牙实现Socket列表的展示,获取安卓手机系统安装的应用和自己安装的应用相关信息
- Android获取系统应用及安装应用的权限列表
- Android获取系统应用及安装应用的权限列表
- [置顶] Android中高仿快牙实现Socket列表的展示,获取安卓手机系统安装的应用和自己安装的应用相关信息
- Android实现获取系统应用列表
- iOS系统中如何获取系统中已安装的应用信息
- Launcher 方方面:获取系统应用列表
- C#获取系统默认打印机和已安装的打印机列表
- android获取所有应用信息,判断系统应用或第三方应用,监听应用安装和卸载
- 获取已安装应用列表
- android获取已安装应用中的系统应用程序
- Android实现获取系统应用列表
- 使用iOS私有API获取安装应用列表
- Pyqt 获取windows系统中已安装软件列表
- Android学习之获取系统应用信息列表的实现
- 安卓Launcher之获取手机安装的应用列表
- 获取IOS应用安装列表
- 获取已安装应用信息,判断是否为系统应用
- AHK 获取系统已安装字体列表
- android 获取系统已经安装的应用