編輯:關於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. Listpackages = 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);
再看文章之前,希望大家先打開自己的微信點到朋友圈中去,仔細觀察是不是發現朋友圈裡的有個“九宮格”的圖片區域,點擊圖片又會跳到圖片的詳細查看頁面,並且支持圖片的滑動和縮放?
1、 進程的地址空間在32位操作系統中,進程的地址空間為0到4GB,示意圖如下: 圖1 這裡主要說明一下Stack和Heap:Stack空
安卓低版本的效果很難看,高版本的dialog雖然好看,但還是和公司UI給的效果圖有些差距.於是乎就想辦法能不能dialog的布局也能自定義.好了先看效果圖:是不是感覺效果
手機百度浏覽器怎麼清除地址欄輸入歷史教程。我們在使用手機百度浏覽器的時候,之前輸入很多地址。都被保存下來。可我想清除這手機百度浏覽器的地址欄輸入歷史,不想它