android 获取手机包名显示
来源:互联网 发布:渡口网络破产 编辑:程序博客网 时间:2024/06/04 19:44
功能:主要是获取手机所有应用的包名并显示。
实现代码:1、FindApk.java
package wind.com.findapk; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.graphics.drawable.Drawable; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.Window; import android.widget.AdapterView; import android.widget.BaseAdapter; import android.widget.GridView; import android.widget.ImageView; import android.widget.TextView; import java.util.ArrayList; import java.util.List;public class FinkApk extends Activity { List<AppsItemInfo> list; private GridView gridView; private PackageManager packageManager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.main); gridView = (GridView)findViewById(R.id.gridview); packageManager = FinkApk.this.getPackageManager(); List<PackageInfo> appList = getAllApps(FinkApk.this); list = new ArrayList<AppsItemInfo>(); for (int i=0; i< appList.size();i++){ PackageInfo packageInfo = appList.get(i); AppsItemInfo shareItem = new AppsItemInfo(); shareItem.setIcon(packageManager.getApplicationIcon(packageInfo.applicationInfo)); shareItem.setLabel(packageManager.getApplicationLabel(packageInfo.applicationInfo).toString()); shareItem.setPackageName(packageInfo.applicationInfo.packageName); list.add(shareItem); } gridView.setAdapter(new baseAdapter()); gridView.setOnItemClickListener(new ClickListener()); } private class baseAdapter extends BaseAdapter { LayoutInflater inflater = LayoutInflater.from(FinkApk.this); @Override public int getCount() { // TODO Auto-generated method stub return list.size(); } @Override public Object getItem(int position) { // TODO Auto-generated method stub return null; } @Override public long getItemId(int position) { // TODO Auto-generated method stub return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub ViewHolder holder; if (convertView == null) { // 使用View的对象itemView与R.layout.item关联 convertView = inflater.inflate(R.layout.apps, null); holder = new ViewHolder(); holder.icon = (ImageView) convertView.findViewById(R.id.apps_image); holder.label = (TextView) convertView.findViewById(R.id.apps_textview); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } holder.icon.setImageDrawable(list.get(position).getIcon()); holder.label.setText(list.get(position).getLabel().toString()); return convertView; } } static class ViewHolder{ ImageView icon; TextView label; } // 当用户点击应用程序图标时,将对这个类做出响应 private class ClickListener implements AdapterView.OnItemClickListener { @Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { PackageManager packageManager =FinkApk.this.getPackageManager(); String pName = list.get(arg2).getPackageName(); //获取包名 Intent intent = new Intent(); //获取intent intent =packageManager.getLaunchIntentForPackage(pName); startActivity(intent); } } public static List<PackageInfo> getAllApps(Context context) { List<PackageInfo> apps = new ArrayList<PackageInfo>(); PackageManager pManager = context.getPackageManager(); // 获取手机内所有应用 List<PackageInfo> packlist = pManager.getInstalledPackages(0); for (int i = 0; i < packlist.size(); i++) { PackageInfo pak = (PackageInfo) packlist.get(i); // 判断是否为非系统预装的应用程序 // 这里还可以添加系统自带的,这里就先不添加了,如果有需要可以自己添加 // if()里的值如果<=0则为自己装的程序,否则为系统工程自带 if ((pak.applicationInfo.flags & pak.applicationInfo.FLAG_SYSTEM) > 0) { // 添加自己已经安装的应用程序 apps.add(pak); } } return apps; } public String className(String packagename){ String aa=""; final Intent mainIntent = new Intent(Intent.ACTION_MAIN, null); mainIntent.addCategory(Intent.CATEGORY_LAUNCHER); final PackageManager packageManager = getPackageManager(); List<ResolveInfo> apps = packageManager.queryIntentActivities( mainIntent, 0); for (int i = 0; i < apps.size(); i++) { ResolveInfo info = apps.get(i); Log.e("TAG", info.activityInfo.loadLabel(packageManager) + " pkgName " + info.activityInfo.applicationInfo.packageName + " className " + info.activityInfo.name); if(packagename==info.activityInfo.applicationInfo.packageName) aa = info.activityInfo.name; } return aa; }}
2、appsItemInfo.java
package wind.com.findapk;import android.graphics.drawable.Drawable;public class AppsItemInfo{ private Drawable icon; // 存放图片 private String label; // 存放应用程序名 private String packageName; // 存放应用程序包名 public Drawable getIcon() { return icon; } public void setIcon(Drawable icon) { this.icon = icon; } public String getLabel() { return label; } public void setLabel(String label) { this.label = label; } public String getPackageName() { return packageName; } public void setPackageName(String packageName) { this.packageName = packageName; }}3、main.xml布局代码
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:background="@drawable/wall" android:layout_height="fill_parent" > <TextView android:textSize="25sp" android:gravity="center" android:layout_marginTop="100dip" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginBottom="30dp" android:text="@string/title"/> <GridView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/gridview" android:layout_width="fill_parent" android:layout_height="fill_parent" android:numColumns="auto_fit" android:verticalSpacing="10dp" android:horizontalSpacing="10dp" android:columnWidth="95dp" android:stretchMode="columnWidth" /></LinearLayout>4、apps.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="center" ><ImageViewandroid:id="@+id/apps_image" android:layout_width="48dip" android:layout_height="48dip" android:icon="@drawable/ic_launcher" /><TextView android:id="@+id/apps_textview" android:layout_width="wrap_content" android:layout_height="wrap_content"android:maxEms="6"android:lines="2"android:gravity="center"android:text="good" /></LinearLayout>5、权限文件代码:
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="wind.com.findapk"><!--android:theme="@android:style/Theme.Translucent" android:theme="@android:style/Theme.Dialog"--> <application android:allowBackup="true" android:icon="@drawable/games" android:label="@string/app_name" android:theme="@style/Transparent" android:launchMode="singleTask" android:supportsRtl="true"> <activity android:name=".FinkApk"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application></manifest>
0 0
- android 获取手机包名显示
- 获取Android手机当前界面Activity包名,类名
- ###*获取Android手机所有应用包名以及类名*
- Android 获取手机所有应用包名以及权限
- android开发之获取手机所有应用的包名
- android 获取当前显示页面app 包名
- Android 手机卫士(4) 包名/版本号/版本名的获取
- 获取手机中应用程序的包名
- android中获取包名,类名
- 获取手机的所有widget类名和包名
- 在Android手机上获取其他应用的包名及版本号
- Android手机上获取其他应用的包名及版本号
- Android 获取你手机中安装的应用的包名及启动页
- 【Android】获取手机中已安装apk文件信息(PackageInfo、ResolveInfo)(应用图片、应用名、包名等)
- 【Android】获取手机中已安装apk文件信息(PackageInfo、ResolveInfo)(应用图片、应用名、包名等
- 【Android】获取手机中已安装apk文件信息(PackageInfo、ResolveInfo)(应用图片、应用名、包名等) 收藏
- 【Android】获取手机中已安装apk文件信息(PackageInfo、ResolveInfo)(应用图片、应用名、包名等) 收藏
- 【Android】获取手机中已安装apk文件信息(PackageInfo、ResolveInfo)(应用图片、应用名、包名等) 收藏
- 设计师思维模型之用户模型
- Android自定义下载状态栏
- NYOJ 1099 Lan Xiang's Square(给出四点判断是否能构成正方形)
- 微信 安卓 无法支持keydown keypress keyup
- 一号互联新研发的“办公室节能应用”来袭,WiFi智能的新方案
- android 获取手机包名显示
- AangularJs动态时间例子
- 使用摄像头拍摄照片
- Facebook产品总监NB产品14个必考题
- HashMap与ConcurrentHashMap的区别
- 静态编译
- spring AOP个人理解
- 为啥UI设计师要学习产品思维?
- 文章标题