android launch应用,读取app列表然后打开相应的app
2014-10-29 15:19
501 查看
功能:实现读取手机上的所有app列表,根据业务的需要再加过滤条件即可,点击相应的图标可以打开相应的app。
先看下效果:
3个文件,代码如下 。
MainActivity.java
activity_main.xml
list_launch.xml
先看下效果:
3个文件,代码如下 。
MainActivity.java
package com.example.testlaunch; import java.util.List; import android.app.Activity; import android.content.ComponentName; import android.content.Intent; import android.content.pm.ResolveInfo; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.BaseAdapter; import android.widget.GridView; import android.widget.ImageView; import android.widget.TextView; public class MainActivity extends Activity { private List<ResolveInfo> appList; private GridView gvApps; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); loadApps(); setContentView(R.layout.activity_main); gvApps = (GridView) findViewById(R.id.gv_app); gvApps.setAdapter(new AppsAdapter()); gvApps.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // TODO Auto-generated method stub ResolveInfo info = appList.get(position); // 该应用的包名 String pkg = info.activityInfo.packageName; // 该应用的主activity类 String cls = info.activityInfo.name; ComponentName componet = new ComponentName(pkg, cls); Intent intent = new Intent(); intent.setComponent(componet); startActivity(intent); } }); } /** * 读取所有的app * @Title:loadApps */ private void loadApps() { Intent mainIntent = new Intent(Intent.ACTION_MAIN, null); mainIntent.addCategory(Intent.CATEGORY_LAUNCHER); appList = getPackageManager().queryIntentActivities(mainIntent, 0); } public class AppsAdapter extends BaseAdapter { public View getView(int position, View convertView, ViewGroup parent) { ImageView imageView; TextView textView; if (convertView == null) { convertView = LayoutInflater.from(MainActivity.this) .inflate(R.layout.list_launch, parent, false); } imageView = (ImageView) convertView.findViewById(R.id.iv_launch); textView = (TextView) convertView.findViewById(R.id.tv_launch); ResolveInfo info = appList.get(position); imageView.setImageDrawable(info.activityInfo.loadIcon(getPackageManager())); textView.setText(info.activityInfo.loadLabel(getPackageManager())); return convertView; } @Override public int getCount() { // TODO Auto-generated method stub return appList.size(); } @Override public Object getItem(int position) { // TODO Auto-generated method stub return appList.get(position); } @Override public long getItemId(int position) { // TODO Auto-generated method stub return position; } } }
activity_main.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" > <GridView android:id="@+id/gv_app" android:layout_width="match_parent" android:layout_height="wrap_content" android:numColumns="3" > </GridView> </LinearLayout>
list_launch.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="100dp" android:layout_height="100dp" android:gravity="center" android:orientation="vertical" > <ImageView android:id="@+id/iv_launch" android:layout_width="80dp" android:layout_height="80dp" /> <TextView android:id="@+id/tv_launch" android:layout_width="wrap_content" android:singleLine="true" android:layout_height="wrap_content" /> </LinearLayout>
相关文章推荐
- Android开发过程遇到的安装好的APP打开程序崩溃,或者安装后应用列表里没有的问题及解决方案
- android开发仿照第三方app打开方式,如何将你的app显示在打开列表,并且将文件复制到你的app应用内
- Android Launcher分析和修改7——AllApp全部应用列表(AppsCustomizeTabHost)
- android实现通过浏览器点击链接打开本地应用(APP)并拿到浏览器传递的数据
- Android实现通过浏览器点击链接打开本地应用(APP)并拿到浏览器传递的数据
- 关于Android app首次安装完成后在安装界面直接“打开”应用再按home键返回桌面,重新进入app重复实例化launcher activity的问题的解决
- Android实现通过浏览器点击链接打开本地应用(APP)并拿到浏览器传递的数据
- Android Launcher分析和修改7——AllApp全部应用列表(AppsCustomizeTabHost)
- Android实现通过浏览器点击链接打开本地应用(APP)并拿到浏览器传递的数据(转)
- 通过打开android应用市场来定位你的app
- Android Launcher分析和修改7——AllApp全部应用列表(AppsCustomizeTabHost)
- android实现通过浏览器点击链接打开本地应用(APP)并拿到浏览器传递的数据
- Android避免应用出现在最近使用APP列表里
- Android实现通过浏览器点击链接打开本地应用(APP)并拿到浏览器传递的数据
- Android App 实现分享功能及将应用加入分享列表 (分享功能可自定义需要分享的APP)
- android实现通过浏览器点击链接打开本地应用(APP)并拿到浏览器传递的数据
- android实现通过浏览器点击链接打开本地应用(APP)并拿到浏览器传递的数据
- iOS App让自己的应用在其他应用中打开列表中显示
- Android实现通过浏览器点击链接打开本地应用(APP)并拿到浏览器传递的数据
- Android实现通过浏览器点击链接打开本地应用(APP)并拿到浏览器传递的数据