編輯:關於Android編程
本文將介紹如何獲取設備中已經安裝的應用信息,包括:應用名稱、包名、圖標等。
獲得信息列表後,選擇某一項記錄還可以啟動對應的應用!


1.代碼實現
package com.example.showapplist;
import java.util.ArrayList;
import java.util.List;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.support.v4.app.ListFragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;
public class AppListFragment extends ListFragment {
private ArrayList appList = new ArrayList();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getAppList();
AppAdapter adapter = new AppAdapter(this.getActivity(), appList);
setListAdapter(adapter);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return super.onCreateView(inflater, container, savedInstanceState);
}
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
// 啟動所選應用
startActivity(appList.get(position).appIntent);
}
/**
* 獲取非系統應用信息列表
*/
private void getAppList() {
PackageManager pm = this.getActivity().getPackageManager();
// Return a List of all packages that are installed on the device.
List packages = pm.getInstalledPackages(0);
for (PackageInfo packageInfo : packages) {
// 判斷系統/非系統應用
if ((packageInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 0) // 非系統應用
{
AppInfo info = new AppInfo();
info.appName = packageInfo.applicationInfo.loadLabel(pm)
.toString();
info.pkgName = packageInfo.packageName;
info.appIcon = packageInfo.applicationInfo.loadIcon(pm);
// 獲取該應用安裝包的Intent,用於啟動該應用
info.appIntent = pm.getLaunchIntentForPackage(packageInfo.packageName);
appList.add(info);
} else {
// 系統應用
}
}
}
}
其中,getAppList()方法獲得了當前設備所安裝的應用信息。
通過以下代碼判斷某一應用是系統應用還是非系統應用:
// 判斷系統/非系統應用
if ((packageInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 0) // 非系統應用
{
} else {
// 系統應用
}
// 獲取該應用安裝包的Intent,用於啟動該應用 info.appIntent = pm.getLaunchIntentForPackage(packageInfo.packageName);
Android仿微信朋友圈圖片查看器
再看文章之前,希望大家先打開自己的微信點到朋友圈中去,仔細觀察是不是發現朋友圈裡的有個“九宮格”的圖片區域,點擊圖片又會跳到圖片的詳細查看頁面,並且支持圖片的滑動和縮放?
android 內存進程管理分析
1、 進程的地址空間在32位操作系統中,進程的地址空間為0到4GB,示意圖如下: 圖1 這裡主要說明一下Stack和Heap:Stack空
自定義dialog+工具類
安卓低版本的效果很難看,高版本的dialog雖然好看,但還是和公司UI給的效果圖有些差距.於是乎就想辦法能不能dialog的布局也能自定義.好了先看效果圖:是不是感覺效果
手機百度浏覽器怎麼清除地址欄輸入歷史教程
手機百度浏覽器怎麼清除地址欄輸入歷史教程。我們在使用手機百度浏覽器的時候,之前輸入很多地址。都被保存下來。可我想清除這手機百度浏覽器的地址欄輸入歷史,不想它