導航:首頁 > 操作系統 > android程序列表

android程序列表

發布時間:2024-10-20 01:41:33

android 如何讓應用程序在全部應用程序列表裡顯示跟隱藏!

之前有個客戶的需求特別怪,要求應用不在全部應用程序列表裡顯示,通過撥打指定的電話號碼形式啟動應用,開始的想發就是在manifest.xml里的第一個activity里不添加<action android:name=android.intent.action.MAIN / <category android:name=android.intent.category.LAUNCHER /這兩個intentfilter。發現在4.0以上的版本就會出現錯誤!4.0會認為你這個是不安全的信息,無法啟動。後來在PackageManager里發現了setComponentEnabledSetting這個方法,可以達到效果!看代碼吧!

⑵ 如何獲得Android手機的軟體安裝列表

packageManager.getInstalledApplications()返回一個列表都是安裝在設備上的應用程序包。如果我們把 flag GET_UNINSTALLED_PACKAGES設定,一個列表中的所有應用,包括那些設置為dont_delete_data(部分已安裝的應戚讓州用程序的數據目錄)將返回。

你可以看到高蔽附件中的截圖,我們將創建一個列表顯示所有已安裝的應用程序。

snippet_list_row.xml--------------------這個布局是由ListView適配器用於表示應用程序的細節。它顯示應用程序圖標、應用程序名稱和應用程序包。
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" > <ImageView android:id="@+id/app_icon" android:layout_width="50dp" android:layout_height="50dp" android:padding="3dp" android:scaleType="滑告centerCrop" /> <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="center_vertical" android:orientation="vertical" android:paddingLeft="5dp" > <TextView android:id="@+id/app_name" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center_vertical" android:textStyle="bold" /> <TextView android:id="@+id/app_paackage" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center_vertical" /> </LinearLayout></LinearLayout>

AllAppsActivity.java ##這是用於初始化和列表已安裝的應用程序的主要應用程序類。從packagemanage得到應用細節列表是一個耗時的任務,我們將在AsyncTask裡面做。同時,類使用自定義適配器「自定義listview applicationadapter」。 package com.javatechig.listapps;import java.util.ArrayList;import java.util.List;import android.app.AlertDialog;import android.app.ListActivity;import android.app.ProgressDialog;import android.content.ActivityNotFoundException;import android.content.DialogInterface;import android.content.Intent;import android.content.pm.ApplicationInfo;import android.content.pm.PackageManager;import android.net.Uri;import android.os.AsyncTask;import android.os.Bundle;import android.view.Menu;import android.view.MenuInflater;import android.view.MenuItem;import android.view.View;import android.widget.ListView;import android.widget.Toast;public class AllAppsActivity extends ListActivity { private PackageManager packageManager = null; private List<ApplicationInfo> applist = null; private ApplicationAdapter listadaptor = null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); packageManager = getPackageManager(); new LoadApplications().execute(); } public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.menu, menu); return true; } public boolean onOptionsItemSelected(MenuItem item) { boolean result = true; switch (item.getItemId()) { case R.id.menu_about: { displayAboutDialog(); break; } default: { result = super.onOptionsItemSelected(item); break; } } return result; } private void displayAboutDialog() { final AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle(getString(R.string.about_title)); builder.setMessage(getString(R.string.about_desc)); builder.setPositiveButton("Know More", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://stacktips.com")); startActivity(browserIntent); dialog.cancel(); } }); builder.setNegativeButton("No Thanks!", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { dialog.cancel(); } }); builder.show(); } @Override protected void onListItemClick(ListView l, View v, int position, long id) { super.onListItemClick(l, v, position, id); ApplicationInfo app = applist.get(position); try { Intent intent = packageManager .getLaunchIntentForPackage(app.packageName); if (null != intent) { startActivity(intent); } } catch (ActivityNotFoundException e) { Toast.makeText(AllAppsActivity.this, e.getMessage(), Toast.LENGTH_LONG).show(); } catch (Exception e) { Toast.makeText(AllAppsActivity.this, e.getMessage(), Toast.LENGTH_LONG).show(); } } private List<ApplicationInfo> checkForLaunchIntent(List<ApplicationInfo> list) { ArrayList<ApplicationInfo> applist = new ArrayList<ApplicationInfo>(); for (ApplicationInfo info : list) { try { if (null != packageManager.getLaunchIntentForPackage(info.packageName)) { applist.add(info); } } catch (Exception e) { e.printStackTrace(); } } return applist; } private class LoadApplications extends AsyncTask<Void, Void, Void> { private ProgressDialog progress = null; @Override protected Void doInBackground(Void... params) { applist = checkForLaunchIntent(packageManager.getInstalledApplications(PackageManager.GET_META_DATA)); listadaptor = new ApplicationAdapter(AllAppsActivity.this, R.layout.snippet_list_row, applist); return null; } @Override protected void onCancelled() { super.onCancelled(); } @Override protected void onPostExecute(Void result) { setListAdapter(listadaptor); progress.dismiss(); super.onPostExecute(result); } @Override protected void onPreExecute() { progress = ProgressDialog.show(AllAppsActivity.this, null, "Loading application info..."); super.onPreExecute(); } @Override protected void onProgressUpdate(Void... values) { super.onProgressUpdate(values); } }}

package com.javatechig.listapps;import java.util.List;import android.content.Context;import android.content.pm.ApplicationInfo;import android.content.pm.PackageManager;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.ArrayAdapter;import android.widget.ImageView;import android.widget.TextView;public class ApplicationAdapter extends ArrayAdapter<ApplicationInfo> { private List<ApplicationInfo> appsList = null; private Context context; private PackageManager packageManager; public ApplicationAdapter(Context context, int textViewResourceId, List<ApplicationInfo> appsList) { super(context, textViewResourceId, appsList); this.context = context; this.appsList = appsList; packageManager = context.getPackageManager(); } @Override public int getCount() { return ((null != appsList) ? appsList.size() : 0); } @Override public ApplicationInfo getItem(int position) { return ((null != appsList) ? appsList.get(position) : null); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { View view = convertView; if (null == view) { LayoutInflater layoutInflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); view = layoutInflater.inflate(R.layout.snippet_list_row, null); } ApplicationInfo applicationInfo = appsList.get(position); if (null != applicationInfo) { TextView appName = (TextView) view.findViewById(R.id.app_name); TextView packageName = (TextView) view.findViewById(R.id.app_paackage); ImageView iconview = (ImageView) view.findViewById(R.id.app_icon); appName.setText(applicationInfo.loadLabel(packageManager)); packageName.setText(applicationInfo.packageName); iconview.setImageDrawable(applicationInfo.loadIcon(packageManager)); } return view; }};

⑶ [Android][App不顯示在最近使用過的應用程序列表中]

為什麼想要App不顯示在最近使用過的應用程序列表中?我們知道如果在最近使用過的應用程序列表中將APP劃掉,那麼這個APP就會被銷毀。為了延長APP常駐時間,就希望隱藏APP,不讓用戶在最近使用過的應用程序列表中將APP銷毀。但是這只是一個小手段,用戶還是可以到系統設置的應用中銷毀APP,不要妄想通過這個方法來保活APP.

實現上面的內容只需要在AndroidManifest中的Activity標簽中添加android:excludeFromRecents="true"。
任務是否會在最近使用的應用程序的列表("最近的應用程序")中顯示。也就是,當這個活動是根活動的一個新任務,這個屬性決定了任務應不應該出現在列表中最近的應用程序。設置"true"如果這個任務應該被排除在名單,設置"false"如果它應該被包括。默認值為"false"。
經過測試,當在被LAUNCHER的Activity設置了android:excludeFromRecents="true",App不顯示在最近使用過的應用程序列表中。也就是如下設置

如果MainActivity是LAUNCHER的Activity,而SecondActivity是MainActivity里的一個Button被點擊後才啟動的,如果在注冊清單了給SecondActivity設置了android:excludeFromRecents="true",是無效的,如下設置

但是如果在注冊清單里的SecondActivity里設置了android:launchMode="singleInstance",那麼,當當前顯示的是SecondActivity的時候,App是不會顯示在最近使用過的應用程序列表中。

這也正好驗證了上面的一句話「當這個活動是根活動的一個新任務,這個屬性決定了任務應不應該出現在列表中最近的應用程序。」也就是說只有當這個Activity是處於任務棧根部的時候android:excludeFromRecents="true"才會起作用。但是,如果加了android:launchMode="singleInstance"當我們點擊桌面的APP圖標的時候,顯示的是MainActivity而不是SecondActivity.
最後展示一下什麼是最近使用過的應用程序列表:

怎樣防止App在後台運行,點擊應用桌面圖標重新啟動?這個問題之前有碰到過,這篇 文章 有解釋。本來打算解決上面「加了android:launchMode="singleInstance"後,當APP在後台運行,點擊應用桌面圖標的時候顯示的不是APP進入後台時顯示的界面」的問題,但是並沒有用,這里記錄一下,以後有時間再研究吧。

http://download.csdn.net/detail/lgywsdy/9876908

⑷ Android手機系統自帶的應用程序有哪些。

因不同版本的Android系統和不同品牌手機的定製,會有差異導致系統自帶程序有差異,但大體上有以下程序:

  1. *AccountAndSyncSettings.apk 同步與賬戶設定(絕不能刪除)

  2. *ApplicationsProvider.apk 應用程序支持服務 (絕不能刪除)

  3. Bluetooth.apk 藍牙(刪除後藍牙功能消失)

  4. Browser.apk 系統自帶瀏覽器(可用其他手機瀏覽器替代)

  5. Calculator.apk 計算器(可刪,可用其他替代)

  6. Calendar.apk 日歷(可刪)

  7. CalendarProvider.apk 日歷程序支持服務(可刪)

  8. *Camera.apk 自帶相機 (絕不能刪除)

  9. *CertInstaller.apk 證書服務 (絕不能刪除)

  10. Contacts.apk 通訊簿/聯系人(用第三方通訊簿的可刪)

  11. *ContactsProvider.apk 通訊簿/聯系人數據存儲服務 (絕不能刪除)

  12. *DefaultContainerService.apk 默認通訊簿服務(絕不能刪除)

  13. DeskClock.apk 自帶鬧鍾(用第三方鬧鍾的可刪)

  14. *DownloadProvider.apk 下載管理器(絕不能刪除)

  15. *DrmProvider.apk DRM受保護數據存儲服務(絕不能刪除)

  16. DSPManager.apk DSP音頻管理(可刪)

  17. Email.apk Email(不用自帶Email接受郵件的可刪)

  18. FileManager.apk 簡易文件管理器(可刪,可用ES文件管理器替代)

  19. Gallery3D.apk 3D圖片瀏覽器 (可刪)

  20. GenieWidget.apk 天氣與新聞(可刪)

  21. Gmail.apk Gmail(可刪)

  22. GoogleBackupTransport.apk ***(未知程序,可刪)

  23. GoogleCalendarSyncAdapter.apk 存儲日歷訊息(可刪)

  24. GoogleContactsSyncAdapter.apk 存儲聯系人訊息(可刪)

  25. GoogleFeedback.apk ***(據說刪除後開機會提示GoogleFeedback.apk,根據自身情況決定是否刪除)

  26. GooglePartnerSetup.apk Google助手(可刪)

  27. GooglePinyinIME.apk Google拼音(可刪,用其他輸入法替代)

  28. GoogleQuickSearchBox.apk Google搜索(可刪)

  29. GoogleServicesFramework.apk 同步支持服務(刪除後無法同步聯系人,且不能登錄Google)

  30. HTMLViewer.apk HTML瀏覽器(可刪)

  31. kickback.apk 輔助功能

  32. LauncherPro.apk 原生桌面(可刪)

  33. LiveWall**sPicker.apk 動態壁紙(可刪)

  34. Maps.apk Google地圖(可刪)

  35. MarketUpdater.apk 市場升級(不確定)

  36. *MediaProvider.apk 媒體數據存儲服務(絕不能刪除)

  37. MediaUploader.apk 媒體升級(可刪)

  38. Mms.apk 自帶訊息(可刪)

  39. Music.apk 自帶音樂(可刪,用自己喜歡的播放器吧)

  40. NetworkLocation.apk 網路位置(可刪)

  41. OneTimeInitializer.apk ***(未知,可刪)

  42. *PackageInstaller.apk 程序安裝(絕不能刪除)

  43. *Phone.apk 電話撥號程序(絕不能刪除)

  44. PhoneGuard.apk 撥號衛士(可刪)

  45. PicoTts.apk 可刪(文字語言轉換的語音合成引擎,設定-語音輸入與輸出中)

  46. Protips.apk 桌面小綠人插件(可刪)

  47. *QuickMgr.apk 一鍵設定(長按menu的後彈出的那個,絕不能刪除)

  48. *Settings.apk 系統設定(絕不能刪除)

  49. *SettingsProvider.apk 設定服務程序 (絕不能刪除)

  50. *SetupWizard.apk 開機引導(在定製Rom時不可刪,刷好機可用Root Explorer刪掉)

  51. SMSPopup.apk 簡訊泡泡(就是簡訊來時彈出的那個,其實就是個彈出框架)

  52. soundback.apk 輔助功能(可刪)

  53. SoundRecorder.apk 錄音機(可用第三方錄音軟體替代)

  54. Stk.apk SIM卡服務(可刪,有機友把聯系人復制在SIM卡上的就不要刪它)

  55. Street.apk 街道(可刪)

  56. *Superuser.apk 授權程序(就是程序行表上面那個,用這個來獲取Root的)

  57. Talk.apk 系統服務項(可刪)

  58. talkback.apk 輔助功能(可刪)

  59. *TelephonyProvider.apk 撥號記錄存儲服務(絕不能刪除)

  60. Term.apk 超級終端(可刪,不過不建議,可以用來刷Recovery)

  61. TtsService.apk Text-to-speech服務(可刪)

  62. Updater.apk 在線升級(可刪)

  63. UserDictionaryProvider.apk 用戶數據字典服務(可刪)

  64. Vending.apk 電子市場(可刪)

  65. VoiceSearch.apk 語音搜索(可刪)


提示: 帶*號的不可以刪除,否則會出現嚴重問題,例如手機卡死,死機,無法開機等情況。

閱讀全文

與android程序列表相關的資料

熱點內容
夢里和程序員談戀愛 瀏覽:171
特價伺服器什麼意思 瀏覽:379
程序員交接不想接怎麼辦 瀏覽:873
vb文件夾怎麼選擇 瀏覽:118
公眾號驗證碼登陸源碼 瀏覽:524
居民樓用電量與電纜演算法 瀏覽:357
安裝mysql步驟linux 瀏覽:192
模擬器開app卡頓是怎麼回事 瀏覽:432
安卓手機如何將應用安裝到sd卡 瀏覽:1002
調取命令符 瀏覽:720
核酸檢測報告怎麼能加密 瀏覽:96
單片機燒錄是什麼意思 瀏覽:454
phpmysqlmysqlnd 瀏覽:539
php獲取伺服器端ip 瀏覽:429
域控伺服器搭建好如何管理客戶機 瀏覽:737
30萬女程序員直播寫代碼 瀏覽:915
小米手機數據分區加密 瀏覽:867
php狀態機 瀏覽:690
phpxss防禦代碼 瀏覽:718
金融事件抽取演算法比賽 瀏覽:304