没试验过,下面是在javaeye里面看到的开启另一个应用的代码,希望对你有用
private void start()
{
    Intent intent = new Intent();
    try
    {
        intent.setClassName(getApplicationContext().createPackageContext(
            "com.example",
        android.content.Context.CONTEXT_IGNORE_SECURITY),
            "com.example.ExampleActivity");
    }
    catch (NameNotFoundException e)
    {
        e.printStackTrace();
    }
    startActivity(intent);
}

解决方案 »

  1.   


    感谢您回答 但是 目前我是能把系统所有已安装的包列表出来
    我现在需要用户点击某个包就启动 这个如何来做 需要往intent里怎么传值
      

  2.   


       /* StartActivity
        *  启动对应app
        *  in : classname 应用程序的类名
        * packagename 应用程序的package名字
        */
    public void StartActivity(String classname, String packagename){
    Log.i("APP","StartActivity");
            Log.i("APP","classname:"+classname);
            Log.i("APP","packagename:"+packagename);         Intent myi = new Intent(this, ScriptSearch.class);   
            
            myi.setClassName(packagename, classname);
            
            myi.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);  
            
            startActivity(myi);
    }
      

  3.   


            //处理应用搜索
            List<ResolveInfo> mApps = new ArrayList<ResolveInfo>();
            mApps = LoadApps();
             ResolveInfo info = mApps.get(i);         
             //获取app应用名称
            CharSequence name = info.activityInfo.loadLabel(mMain.getPackageManager());
            String appname = name.toString();
            //Log.i("APP",info.activityInfo.applicationInfo.packageName);//packageName
            //Log.i("APP",info.activityInfo.name);   //classname你需要对你的list创建一个适配器,然后每项列表项用一个类来表示,存储着指定的packageName和classname,这样你点击的时候就根据各自项的包名和类名来启动指定应用
      

  4.   

    /**
     * 检测该apk应用程序是否存在,若存在返回一个跳转到他的intent。
     * 
     * @param gameName
     *          程序的lable

     * @return 返回启动的intent或返回null
     */
    public static Intent loadApplications(String gameName) {
    String category = "";
    List<ResolveInfo> targApps = null;
    category = "android.intent.category.***";//要启动程序的category,mainfest.xml中主activity中配置
    targApps = BaseControl.apps;//获取所有的apps  List<ResolveInfo> apps

    // 获取所有包
    Collections.sort(targApps, new ResolveInfo.DisplayNameComparator(
    manager));
    if (targApps != null) {
    int count = targApps.size();
    for (int i = 0; i < count; i++) {
    ResolveInfo info = targApps.get(i);
    Uri uri = Uri.fromParts("package",
    info.activityInfo.packageName, null);
    String appName = info.loadLabel(manager).toString();
    //程序名字
    if (gameName.equals(appName)) {
    Intent appIntent = new Intent(Intent.ACTION_MAIN);
    ComponentName className = new ComponentName(
    info.activityInfo.applicationInfo.packageName,
    info.activityInfo.name);
    int launchFlags = Intent.FLAG_ACTIVITY_NEW_TASK
    | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED;
    appIntent.addCategory(category);
    appIntent.setComponent(className);
    appIntent.setFlags(launchFlags);
    return appIntent;
    }
    }
    }
    return null;
    }
      

  5.   

    public void onClick(View v) {
    Intent intent = new Intent();

    intent.setClassName("us.imnet.iceskysl.db","us.imnet.iceskysl.db.DBSharedPreferences");
    //intent.setClassName("com.test1","com.test1.TestActivity1");
    startActivity(intent);
      

  6.   

     Intent intent = new Intent();
     intent.setComponent(new ComponentName(pkgName, activityName));
     //pkgName 应用程序的包名
     //activityName 应用程序中的activity名字
     startActivity(intent);