android 获取程序,Android获取桌面应用程序
轉(zhuǎn)載請(qǐng)注明出處,謝謝:http://blog.csdn.net/harryweasley/article/details/50057029
首先在看這個(gè)博客之前, 你可以先看下這個(gè)博客,http://blog.csdn.net/harryweasley/article/details/50057707
里面介紹了兩種方式來獲取應(yīng)用程序的信息,一種是packageInfo,一種是ResolveInfo,通過packageInfo來獲取應(yīng)用信息,會(huì)出現(xiàn)一個(gè)bug,那就是如果該應(yīng)用,有多個(gè)圖標(biāo)和名字,那么只會(huì)默認(rèn)顯示第一個(gè)。所以我現(xiàn)在用ResolveInfo來獲取用戶信息。
關(guān)于多個(gè)圖標(biāo)和名字,不理解的,可以看這篇文章。http://blog.csdn.net/harryweasley/article/details/48051565
看下圖所示:
一共有四個(gè)相同包名,但是圖標(biāo)和名字都不同的同一個(gè)應(yīng)用。
其實(shí)獲得桌面上的所有應(yīng)用程序信息,還是比較簡(jiǎn)單的,以下就是主要代碼了,文章最后,會(huì)貼出資源。
package com.example.getlauncherapp;
import java.util.List;
import android.app.Activity;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ListView;
public class MainActivity extends Activity {
private ListView myListView;
private ListresolveInfoList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myListView = (ListView) findViewById(R.id.listView);
getLauncherApp();
MyBaseAdapter adapter = new MyBaseAdapter(this, resolveInfoList);
myListView.setAdapter(adapter);
}
/**
* 獲取到桌面的應(yīng)用程序
*/
private void getLauncherApp() {
// 桌面應(yīng)用的啟動(dòng)在INTENT中需要包含ACTION_MAIN 和CATEGORY_HOME.
Intent intent = new Intent();
intent.addCategory(Intent.CATEGORY_LAUNCHER);
intent.setAction(Intent.ACTION_MAIN);
PackageManager manager = getPackageManager();
resolveInfoList = manager.queryIntentActivities(intent, 0);
}
}
本項(xiàng)目的下載鏈接為:http://download.csdn.net/detail/harryweasley/9302849
結(jié)束。
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的android 获取程序,Android获取桌面应用程序的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: “延伫空结兰”上一句是什么
- 下一篇: android fragmentacti