android gettop activity,如何在棒棒糖中获取“ getTopActivity”名称或获取当前正在运行的应用程序包名称?...

7fa1e0427a86774f04ea7f79b5bee3b0.png

拉风的咖菲猫

尝试这个:ActivityManager mActivityManager =(ActivityManager)this.getSystemService(Context.ACTIVITY_SERVICE);if(Build.VERSION.SDK_INT > 20){String mPackageName = mActivityManager.getRunningAppProcesses().get(0).processName;}else{  String mpackageName = mActivityManager.getRunningTasks(1).get(0).topActivity.getPackageName();}我们可以使用UsageStats:public static String getTopAppName(Context context) {    ActivityManager mActivityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);    String strName = "";    try {        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {            strName = getLollipopFGAppPackageName(context);        } else {            strName = mActivityManager.getRunningTasks(1).get(0).topActivity.getClassName();        }    } catch (Exception e) {        e.printStackTrace();    }    return strName;}private static String getLollipopFGAppPackageName(Context ctx) {    try {        UsageStatsManager usageStatsManager = (UsageStatsManager) ctx.getSystemService("usagestats");        long milliSecs = 60 * 1000;        Date date = new Date();        List queryUsageStats = usageStatsManager.queryUsageStats(UsageStatsManager.INTERVAL_DAILY, date.getTime() - milliSecs, date.getTime());        if (queryUsageStats.size() > 0) {            Log.i("LPU", "queryUsageStats size: " + queryUsageStats.size());        }        long recentTime = 0;        String recentPkg = "";        for (int i = 0; i < queryUsageStats.size(); i++) {            UsageStats stats = queryUsageStats.get(i);            if (i == 0 && !"org.pervacio.pvadiag".equals(stats.getPackageName())) {                Log.i("LPU", "PackageName: " + stats.getPackageName() + " " + stats.getLastTimeStamp());            }            if (stats.getLastTimeStamp() > recentTime) {                recentTime = stats.getLastTimeStamp();                recentPkg = stats.getPackageName();            }        }        return recentPkg;    } catch (Exception e) {        e.printStackTrace();    }    return "";}//启用USAGE_STATS    // Declare USAGE_STATS permisssion in manifest        Intent intent = new Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS);    startActivity(intent);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值