主要是通过包名来跳转系统的闹钟



这个在部分手机不可以跳转,

   
  //跳转系统闹钟//                Intent alarmas = new Intent(AlarmClock.ACTION_SET_ALARM);//                startActivity(alarmas);

所以要使用通过包名来调用系统闹钟

public class SystemClockDemoActivity extends Activity {Map item;private ArrayList pagList;private Button button;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);button = (Button) findViewById(R.id.button);pagList = new ArrayList();button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {listPackages();Log.d("mxt", "paglist的大小:" + pagList.size());for (int i = 0; i < pagList.size(); i++) {Log.d("mxt", pagList.get(i));}PackageManager pm = getPackageManager();Intent i = pm.getLaunchIntentForPackage(pagList.get(0));// 如果该程序不可启动(像系统自带的包,有很多是没有入口的)会返回NULLif (i != null) {SystemClockDemoActivity.this.startActivity(i);} else {Intent i2 = new Intent(Settings.ACTION_DATE_SETTINGS);SystemClockDemoActivity.this.startActivity(i);}}});}class PInfo {private String appname = "";private String pname = "";private String versionName = "";private int versionCode = 0;private Drawable icon;private void prettyPrint() {Log.i("taskmanger", appname + "\t" + pname + "\t" + versionName+ "\t" + versionCode + "\t");}}private void listPackages() {ArrayList apps = getInstalledApps(false); /* * false = no system * packages */final int max = apps.size();for (int i = 0; i < max; i++) {apps.get(i).prettyPrint();item = new HashMap();int aa = apps.get(i).pname.length();if (aa > 11) {if (apps.get(i).pname.indexOf("clock") != -1) {if (!(apps.get(i).pname.indexOf("widget") != -1)) {try {PackageInfo pInfo = getPackageManager().getPackageInfo(apps.get(i).pname, 0);if (isSystemApp(pInfo) || isSystemUpdateApp(pInfo)) {Log.d("mxt", "是系统自带的");Log.d("mxt","找到了"+ apps.get(i).pname.substring(apps.get(i).pname.length() - 5)+ "  全名:" + apps.get(i).pname+ " " + apps.get(i).appname);item.put("pname", apps.get(i).pname);item.put("appname", apps.get(i).appname);pagList.add(apps.get(i).pname);}} catch (Exception e) {// TODO: handle exception}}}}}}private ArrayList getInstalledApps(boolean getSysPackages) {ArrayList res = new ArrayList();List packs = getPackageManager().getInstalledPackages(0);for (int i = 0; i < packs.size(); i++) {PackageInfo p = packs.get(i);if ((!getSysPackages) && (p.versionName == null)) {continue;}PInfo newInfo = new PInfo();newInfo.appname = p.applicationInfo.loadLabel(getPackageManager()).toString();newInfo.pname = p.packageName;newInfo.versionName = p.versionName;newInfo.versionCode = p.versionCode;newInfo.icon = p.applicationInfo.loadIcon(getPackageManager());res.add(newInfo);}return res;}public boolean isSystemApp(PackageInfo pInfo) {return ((pInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0);}public boolean isSystemUpdateApp(PackageInfo pInfo) {return ((pInfo.applicationInfo.flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) != 0);}}


更多相关文章

  1. Nginx系列教程(六)| 手把手教你搭建 LNMP 架构并部署天空网络电影
  2. Android(安卓)使用OpenGLES 的粒子系统
  3. Android不支持宽字符 (wchar_t*,及有关宽字符的一些函数运行结果
  4. Android自动解除系统锁屏
  5. Android(安卓)Context getSystemService分析
  6. Android(安卓)AppWidget系统框架
  7. Android系统中的输入输出设备
  8. Android入门教程2【开发环境搭建】
  9. android 如何判断开机完成

随机推荐

  1. SQLServer 优化SQL语句 in 和not in的替
  2. SQL Server 2005/2008 用户数据库文件默
  3. SQL 时间格式化函数
  4. 全国省市区县最全最新数据表(数据来源谷
  5. SQLServer 数据库故障修复顶级技巧之一
  6. mssql 30万条数据 搜索文本字段的各种方
  7. SQL SERVER 数据类型详解补充2
  8. asp.net 使用SqlBulkCopy极速插入数据到
  9. sql 函数大全 比较常用的一些函数整理第1
  10. sqlserver 此数据库没有有效所有者错误的