在开发android应用的时候,在一些情况下要有前置条件,比如这边所说的要启动时要确保别的应用程序服务已经打开 或者在操作中启动别的应用等。

  先来一段google上的代码:

1、 已知包名和类名的情况下:

Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_LAUNCHER);        //前面两个设置是为了调用该应用的主页 也就如C#或JAVA 常说的 MAIN函数入口ComponentName cn = new ComponentName(packageName, className);   //ComponentName优先于 action category  data etc.     intent.setComponent(cn); startActivity(intent);  

主要是对intent的属性 ComponentName的设置;

这个方法的缺点是 必须知道该应用的pkg 也就是包名,以及activity的类名; 但是大多数情况下 我们并不知道第三方应用的包名等信息o(╯□╰)o

2、在不知道包名的情况需要用到android 的程序包管理器 PackageManager (还有我雪亮的近视眼)

 // 启动iscan    private void startIscan() {         PackageManager pm=getPackageManager();  //获取程序包服务
// pm.getInstalledApplications(0);    //由于不知道只知道第三方程序的名字,我就SB的用这个方法获取所有已安装程序的信息,然后用我的250读近视眼一个个查看~~ 终于找到需要的包名了 找到包名就非常好办了!!!

Intent intent = new Intent(); intent=pm.getLaunchIntentForPackage("com.iData.idata_iscan"); //这个方法直接返回 访问特定包名下activity或service etc.的入口的intent , 省去设置componentName的参数 startActivity(intent); // startService(intent) 为启动服务 }

两种方法都是通过intent来启动, 主要区别是intent的属性设置方法不同。 第一个是对ComponentName的设置 ,第二种是利用PackageManager来获取特定包名(包名也通过 pkgManager来获取) 的启动intent。

   

更多相关文章

  1. Android(安卓)百度地图使几点始终在合适的屏幕范围内显示
  2. Android(安卓)webview最简单小例子
  3. Android(安卓)在PreferenceActivity 中移除一个Preference
  4. android 的webView的透明设置
  5. Android(安卓)5.0 如何正确启用isLoggable(二)__原理分析
  6. Android中popuwindow中使用listview
  7. Android(安卓)材料设计一
  8. Android(安卓)Notes 之 SlidingMenu的使用
  9. Android(安卓)menu关闭应用程序

随机推荐

  1. Android(安卓)NFC tag and NFC data form
  2. Android中将布局文件/View添加至窗口过程
  3. (转)android AppWidgetProvider 定时刷新
  4. Android(安卓)SharedPreferences工具类 ,
  5. android调用JS失败时可能的原因
  6. Android(安卓)密码校验,字符串中必须包含
  7. Android(安卓)Broadcast receiver 编程
  8. android Parcelable进程间通信
  9. Android(安卓)studio 百度地图开发(6)Marke
  10. android sudio 如何获取sha1与md5值