大树哥
大树哥
  • 发布:2015-06-16 18:41
  • 更新:2017-01-11 19:51
  • 阅读:3462

Android添加已安装应用获取,启动的接口

分类:5+ SDK
package io.dcloud.HBuilder.tools;  

import java.util.List;  
import android.app.Activity;  
import android.content.Context;  
import android.content.Intent;  
import android.content.pm.ApplicationInfo;  
import android.content.pm.PackageInfo;  
import android.content.pm.PackageManager;  

public class Tools extends Activity {  

    /**  
     * 获取系统已安装APP  
     * @param context  
     * @param getSysPackages 是否获取系统APP  
     * @return  
     */  
    public static String getInstalledApps(Context context, boolean getSysPackages) {  
        PackageManager pm = context.getPackageManager();  
        List<PackageInfo> packs = pm.getInstalledPackages(0);  
        int length = packs.size();  
        PackageInfo p;  

        String pkg = "";  
        String myPackageName = context.getApplicationInfo().packageName;  

        for (int i = 0; i < length; i++) {  
            p = packs.get(i);  
            // 过滤系统程序和自己  
            if ((p.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) > 0 || p.applicationInfo.packageName.equals(myPackageName))  
                continue;  
            pkg += p.packageName + ":" + p.versionCode + ",";  
        }  
        return pkg;  
    }  

    /**  
     * 获取自身应用的包名  
     * @param context  
     * @return String  
     *   
     * mainActivity = plus.android.runtimeMainActivity();  
     * t = plus.android.importClass("io.dcloud.HBuilder.tools.Tools");  
     * a = t.appPackage(mainActivity);  
     */  
    public static String appPackage(Context context)  
    {  
        String myPackageName = context.getApplicationInfo().packageName;  
        return myPackageName;  
    }  

    /**  
     * 启动外部应用  
     * @param context  
     * @return String  
     *   
     * mainActivity = plus.android.runtimeMainActivity();  
     * t = plus.android.importClass("io.dcloud.HBuilder.tools.Tools");  
     * a = t.startApp(mainActivity, 'com.tencent.mm');  
     */  
    public static boolean startApp(Context context, String packageName)  
    {  
        Intent mIntent = context.getPackageManager().getLaunchIntentForPackage(packageName);  
        if(mIntent != null)  
        {  
            context.startActivity(mIntent);  
            return true;  
        }else{  
            return false;  
        }  
    }  
}

调用的方法

            function getapps(){  
                mainActivity = plus.android.runtimeMainActivity();  
                var Tools = plus.android.importClass("io.dcloud.HBuilder.tools.Tools");  
                var a = Tools.getInstalledApps(mainActivity, true);  
                document.getElementById("package").innerHTML = a;  
            }  

            function startapps(){  
                mainActivity = plus.android.runtimeMainActivity();  
                var Tools = plus.android.importClass("io.dcloud.HBuilder.tools.Tools");  
                var a = Tools.startApp(mainActivity, "com.tencent.mm");  
            }
2015-06-16 18:41 负责人:无 分享
已邀请:
目标

目标

jar文件放在哪?

  • 微图科技

    老哥,我遇到了集成jar包的问题,不知道放哪,云打包可以做到吗

    2019-09-23 20:52

weshky

weshky

请问这个现在是可以直接调用吗?搜了很久都没有搜到io.dcloud.HBuilder下的接口文档

  • 大树哥 (作者)

    直接用js调用

    2015-08-11 11:54

Element

Element - 全栈工程师

膜拜大神

该问题目前已经被锁定, 无法添加新回复