效果图:

说明:

第一行:应用程序名称

第二行:应用程序包名

第三行:应用程序入口Activity名称

代码如下:

packagecom.hello.project;

importjava.util.ArrayList;

importjava.util.Collections;

importjava.util.HashMap;

importjava.util.Iterator;

importjava.util.List;

importjava.util.Map;

importandroid.app.Activity;

importandroid.app.ProgressDialog;

importandroid.content.ComponentName;

importandroid.content.Context;

importandroid.content.Intent;

importandroid.content.pm.ApplicationInfo;

importandroid.content.pm.PackageManager;

importandroid.content.pm.ResolveInfo;

importandroid.graphics.drawable.Drawable;

importandroid.net.Uri;

importandroid.os.Build;

importandroid.os.Bundle;

importandroid.os.Handler;

importandroid.os.Message;

importandroid.provider.Settings;

importandroid.util.Log;

importandroid.view.LayoutInflater;

importandroid.view.View;

importandroid.view.ViewGroup;

importandroid.widget.AbsListView;

importandroid.widget.AdapterView;

importandroid.widget.AbsListView.OnScrollListener;

importandroid.widget.AdapterView.OnItemClickListener;

importandroid.widget.BaseAdapter;

importandroid.widget.ImageView;

importandroid.widget.ListView;

importandroid.widget.SimpleAdapter;

importandroid.widget.TextView;

publicclassSoftActivityextendsActivityimplementsRunnable ,OnItemClickListener{

privateList> list =null;

privateListView softlist =null;

privateProgressDialog pd;

privateContext mContext;

privatePackageManager mPackageManager;

privateList mAllApps;

@Override

protectedvoidonCreate(Bundle savedInstanceState) {

setContentView(R.layout.software);

setTitle("文件管理器");

mContext = this;

mPackageManager = getPackageManager();

softlist = (ListView) findViewById(R.id.softlist);

pd = ProgressDialog.show(this,"请稍候..","正在收集软件信息...",true,false);

Thread thread = newThread(this);

thread.start();

super.onCreate(savedInstanceState);

}

/**

* 检查系统应用程序,添加到应用列表中

*/

privatevoidbindMsg(){

//应用过滤条件

Intent mainIntent = newIntent(Intent.ACTION_MAIN,null);

mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);

mAllApps = mPackageManager.queryIntentActivities(mainIntent, 0);

softlist.setAdapter(newMyAdapter(mContext, mAllApps));

softlist.setOnItemClickListener(this);

//按报名排序

Collections.sort(mAllApps, newResolveInfo.DisplayNameComparator(mPackageManager));

}

@Override

publicvoidrun() {

bindMsg();

handler.sendEmptyMessage(0);

}

privateHandler handler =newHandler() {

publicvoidhandleMessage(Message msg) {

pd.dismiss();

}

};

classMyAdapterextendsBaseAdapter{

privateContext context;

privateList resInfo;

privateResolveInfo res;

privateLayoutInflater infater=null;

publicMyAdapter(Context context, List resInfo) {

this.context = context;

this.resInfo = resInfo;

infater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

}

@Override

publicintgetCount() {

returnresInfo.size();

}

@Override

publicObject getItem(intarg0) {

returnarg0;

}

@Override

publiclonggetItemId(intposition) {

returnposition;

}

@Override

publicView getView(intposition, View convertView, ViewGroup parent) {

//  View view = null;

ViewHolder holder = null;

if(convertView ==null|| convertView.getTag() ==null) {

convertView = infater.inflate(R.layout.soft_row, null);

holder = newViewHolder(convertView);

convertView.setTag(holder);

}

else{

//     view = convertView ;

holder = (ViewHolder) convertView.getTag() ;

}

//获取应用程序包名,程序名称,程序图标

res = resInfo.get(position);

holder.appIcon.setImageDrawable(res.loadIcon(mPackageManager));

holder.tvAppLabel.setText(res.loadLabel(mPackageManager).toString());

holder.tvPkgName.setText(res.activityInfo.packageName+'\n'+res.activityInfo.name);

returnconvertView;

/*convertView = LayoutInflater.from(context).inflate(R.layout.soft_row, null);

app_icon = (ImageView)convertView.findViewById(R.id.img);

app_tilte = (TextView)convertView.findViewById(R.id.name);

app_des = (TextView)convertView.findViewById(R.id.desc);

res = resInfo.get(position);

app_icon.setImageDrawable(res.loadIcon(mPackageManager));

app_tilte.setText(res.loadLabel(mPackageManager).toString());

app_des.setText(res.activityInfo.packageName+'\n'+res.activityInfo.name);

return convertView;*/

}

}

//设定界面布局

classViewHolder {

ImageView appIcon;

TextView tvAppLabel;

TextView tvPkgName;

publicViewHolder(View view) {

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

this.tvAppLabel = (TextView) view.findViewById(R.id.name);

this.tvPkgName = (TextView) view.findViewById(R.id.desc);

}

}

/**

* 单击应用程序后进入系统应用管理界面

*/

@Override

publicvoidonItemClick(AdapterView> arg0, View arg1,intposition,longarg3) {

ResolveInfo res = mAllApps.get(position);

//该应用的包名和主Activity

String pkg = res.activityInfo.packageName;

String cls = res.activityInfo.name;

ComponentName componet = newComponentName(pkg, cls);

Intent i = newIntent();

i.setComponent(componet);

startActivity(i);

}

}

package com.hello.project;

import java.util.ArrayList;

import java.util.Collections;

import java.util.HashMap;

import java.util.Iterator;

import java.util.List;

import java.util.Map;

import android.app.Activity;

import android.app.ProgressDialog;

import android.content.ComponentName;

import android.content.Context;

import android.content.Intent;

import android.content.pm.ApplicationInfo;

import android.content.pm.PackageManager;

import android.content.pm.ResolveInfo;

import android.graphics.drawable.Drawable;

import android.net.Uri;

import android.os.Build;

import android.os.Bundle;

import android.os.Handler;

import android.os.Message;

import android.provider.Settings;

import android.util.Log;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

import android.widget.AbsListView;

import android.widget.AdapterView;

import android.widget.AbsListView.OnScrollListener;

import android.widget.AdapterView.OnItemClickListener;

import android.widget.BaseAdapter;

import android.widget.ImageView;

import android.widget.ListView;

import android.widget.SimpleAdapter;

import android.widget.TextView;

public class SoftActivity extends Activity implements Runnable ,OnItemClickListener{

private List> list = null;

private ListView softlist = null;

private ProgressDialog pd;

private Context mContext;

private PackageManager mPackageManager;

private List mAllApps;

@Override

protected void onCreate(Bundle savedInstanceState) {

setContentView(R.layout.software);

setTitle("文件管理器");

mContext = this;

mPackageManager = getPackageManager();

softlist = (ListView) findViewById(R.id.softlist);

pd = ProgressDialog.show(this, "请稍候..", "正在收集软件信息...", true,false);

Thread thread = new Thread(this);

thread.start();

super.onCreate(savedInstanceState);

}

/**

* 检查系统应用程序,添加到应用列表中

*/

private void bindMsg(){

//应用过滤条件

Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);

mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);

mAllApps = mPackageManager.queryIntentActivities(mainIntent, 0);

softlist.setAdapter(new MyAdapter(mContext, mAllApps));

softlist.setOnItemClickListener(this);

//按报名排序

Collections.sort(mAllApps, new ResolveInfo.DisplayNameComparator(mPackageManager));

}

@Override

public void run() {

bindMsg();

handler.sendEmptyMessage(0);

}

private Handler handler = new Handler() {

public void handleMessage(Message msg) {

pd.dismiss();

}

};

class MyAdapter extends BaseAdapter{

private Context context;

private List resInfo;

private ResolveInfo res;

private LayoutInflater infater=null;

public MyAdapter(Context context, List resInfo) {

this.context = context;

this.resInfo = resInfo;

infater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

}

@Override

public int getCount() {

return resInfo.size();

}

@Override

public Object getItem(int arg0) {

return arg0;

}

@Override

public long getItemId(int position) {

return position;

}

@Override

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

//View view = null;

ViewHolder holder = null;

if (convertView == null || convertView.getTag() == null) {

convertView = infater.inflate(R.layout.soft_row, null);

holder = new ViewHolder(convertView);

convertView.setTag(holder);

}

else{

// view = convertView ;

holder = (ViewHolder) convertView.getTag() ;

}

//获取应用程序包名,程序名称,程序图标

res = resInfo.get(position);

holder.appIcon.setImageDrawable(res.loadIcon(mPackageManager));

holder.tvAppLabel.setText(res.loadLabel(mPackageManager).toString());

holder.tvPkgName.setText(res.activityInfo.packageName+'\n'+res.activityInfo.name);

return convertView;

/*convertView = LayoutInflater.from(context).inflate(R.layout.soft_row, null);

app_icon = (ImageView)convertView.findViewById(R.id.img);

app_tilte = (TextView)convertView.findViewById(R.id.name);

app_des = (TextView)convertView.findViewById(R.id.desc);

res = resInfo.get(position);

app_icon.setImageDrawable(res.loadIcon(mPackageManager));

app_tilte.setText(res.loadLabel(mPackageManager).toString());

app_des.setText(res.activityInfo.packageName+'\n'+res.activityInfo.name);

return convertView;*/

}

}

//设定界面布局

class ViewHolder {

ImageView appIcon;

TextView tvAppLabel;

TextView tvPkgName;

public ViewHolder(View view) {

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

this.tvAppLabel = (TextView) view.findViewById(R.id.name);

this.tvPkgName = (TextView) view.findViewById(R.id.desc);

}

}

/**

* 单击应用程序后进入系统应用管理界面

*/

@Override

public void onItemClick(AdapterView> arg0, View arg1, int position, long arg3) {

ResolveInfo res = mAllApps.get(position);

//该应用的包名和主Activity

String pkg = res.activityInfo.packageName;

String cls = res.activityInfo.name;

ComponentName componet = new ComponentName(pkg, cls);

Intent i = new Intent();

i.setComponent(componet);

startActivity(i);

}

}

software.xml

android:orientation="vertical"android:layout_width="fill_parent"

android:layout_height="fill_parent">

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:drawSelectorOnTop="false"

android:id="@+id/softlist"/>

android:orientation="vertical" android:layout_width="fill_parent"

android:layout_height="fill_parent">

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:drawSelectorOnTop="false"

android:id="@+id/softlist" />

soft_row.xml

xmlns:android="http://schemas.android.com/apk/res/android"

android:id="@+id/vw1"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:orientation="horizontal">

android:layout_width="32dip"

android:layout_margin="4dip"

android:layout_height="32dip"/>

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:orientation="vertical">

android:textSize="18sp"

android:textStyle="bold"

android:layout_width="fill_parent"

android:layout_height="wrap_content"/>

android:textSize="14sp"

android:layout_width="fill_parent"

android:paddingLeft="10dip"

android:layout_height="wrap_content"/>

xmlns:android="http://schemas.android.com/apk/res/android"

android:id="@+id/vw1"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:orientation="horizontal">

android:layout_width="32dip"

android:layout_margin="4dip"

android:layout_height="32dip"/>

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:orientation="vertical">

android:textSize="18sp"

android:textStyle="bold"

android:layout_width="fill_parent"

android:layout_height="wrap_content"/>

android:textSize="14sp"

android:layout_width="fill_parent"

android:paddingLeft="10dip"

android:layout_height="wrap_content"/>

最后别忘了添加权限:

android 获取第三方应用程序包名并启动,android 获取第三方应用程序包名并启动...相关推荐

  1. android 自动打开第三方应用程序,Android如何做到应用程序图标隐藏,由第三方程序显示启动...

    Android如何做到应用程序图标隐藏,由第三方程序显示启动 发布时间:2020-07-13 03:25:02 来源:51CTO 阅读:11353 作者:ord1nary 在AndroidManife ...

  2. 【Android应用开发详解】第01期:第三方授权认证(一)实现第三方授权登录、分享以及获取用户资料

    转载请注明出处:http://blog.csdn.net/yangyu20121224/article/details/9057257 由于公司项目的需要,要实现在项目中使用第三方授权登录以及分享文字 ...

  3. android获取GPU信息;android获取GPU渲染器、供应商、版本和扩展名等信息

    android获取GPU信息:android获取GPU渲染器.供应商.版本和扩展名等信息 效果: 1.布局文件 <?xml version="1.0" encoding=&q ...

  4. Android值Intent匹配规则挖掘(PMS获取系统apk信息过程)

    Intent的查找与匹配 App信息表的构建 在Android开发中,Intent是极其重要的一个类,他是个个组件,进程之间通信的纽带,那么系统是如何通过Intent来查找对应的组件的呢? 在Andr ...

  5. 【Android NDK 开发】在 C 代码中获取 Android 系统信息 ( NDK 项目创建 | NDK 配置 | 获取 Android 系统版本号 )

    文章目录 I . 创建 NDK 项目 II . NDK 项目 相关配置 III . NDK 中获取 Android 版本号 IV . 使用 __system_property_get 可获取的参数 I ...

  6. 【转】使用命令行方式创建和启动android模拟器

    原文网址:http://blog.csdn.net/tiandinilv/article/details/8953001 1.Android模拟器介绍 Android中提供了一个模拟器来模拟ARM核的 ...

  7. Android 应用性能优化(4)---Android App性能评测分析-启动时间篇

    Android App性能评测分析-启动时间篇 1.前言 随着项目版本的迭代,App的性能问题会逐渐暴露出来,而好的用户体验与性能表现紧密相关,性能问题从应用的启动优化开始,下面会根据实际app性能测 ...

  8. android中获取应用程序(包)的信息,Android中获取应用程序(包)的信息PackageManager的使用(一).doc...

    Android中获取应用程序(包)的信息PackageManager的使用(一) 本节内容是如何获取Android系统中应用程序的信息,主要包括packagename.label.icon.占用大小等 ...

  9. 关于Android的post,get、cookie网络获取的一些坑

    关于Android的post,get.cookie网络获取的一些坑 这篇文章主要整理下关于我这几天的开发心得,还有这几天开发过程出现的bug以及修复过程,同时分享给大家,这是我的第二篇博客,写得较杂, ...

最新文章

  1. sql 2005 新增的查看sql语句运行情况
  2. C#里partial关键字的作用
  3. win32应用程序创建流程
  4. linux添加zip扩展
  5. 单元测试之—JUnit与SpringTest的完美结合
  6. 每天10分钟用python学数据分析_用Python做数据分析,Numpy,Pandas,matp
  7. oracle11g导入错误,oracle 11g导入到10g引起的错误
  8. 微软发布XAML Studio工具:快速构建UWP XAML原型
  9. sql server数据库:创建数据库、建立数据库用户、为用户赋予权限
  10. 免费体验,阿里云智能LOGO帮你解决设计难题
  11. 双显卡单独分辨率_甜点光追显卡—带你实现GAMING梦!!!
  12. 使用DAO模式开发宠物管理系统---hellokitty
  13. RHCS 测试过程(含GFS2),未完待续!
  14. pytorch 计算模型的GFlops和total params的方法
  15. 提高优秀人才忠诚度的六条法则
  16. crosstab交叉表_数据透视之交叉表 crosstab()
  17. APP开发的需求分析主要包括哪些?
  18. Oracle sql脚本中注释
  19. 基于麦克风阵列的声源定位算法之GCC-PHAT
  20. 计算机科学概论读后感

热门文章

  1. python操作json数据_Python操作JSON数据代码示例
  2. 地大计算机学院教授,张静(地大教授)
  3. python绘制好几个子图_python绘制多个子图的实例
  4. mysql-proxy安装包_Mysql-proxy安装
  5. python 字符串操作_python中字符串的常见操作(一)
  6. iphone怎么长截屏_新iPhone又要为中国定制?除了价格,还有这些惊喜
  7. python 笔试题 英方_经典算法题 :找字符串中的逆序对(百度笔试题)
  8. adxl276怎么添加到proteus中_奶粉中的营养强化剂和食品添加剂是怎么一回事?
  9. python 认证_Django 用户认证
  10. python 爬虫系统_实战干货:从零快速搭建自己的爬虫系统