导航:首页 > 操作系统 > 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程序列表相关的资料

热点内容
服务器为什么不能搬走 浏览:313
三年无工作经验空窗期的程序员 浏览:559
来球网app怎么样 浏览:300
51单片机哈佛 浏览:571
无法下载华为移动服务器地址 浏览:679
phplinux重启命令 浏览:110
厦门软二程序员 浏览:580
tv共享文件夹 浏览:621
bec词汇词根pdf 浏览:65
服务器如何开启上网吗 浏览:159
永久修改linuxip 浏览:748
每个文件单独压缩 浏览:470
你编译一下 浏览:850
程序员打车票 浏览:100
厚大119pdf 浏览:979
jpeg开源编译cjpeg 浏览:86
无主之地免安装版要全部解压吗 浏览:631
什么拼图软件不压缩 浏览:864
苹果app更新不了软件怎么办 浏览:768
程序员的发展是 浏览:294