如何从LuaJ获取运行应用程序列表?

我正在开发一个应用程序,需要运行外部LuaJ解释器以获取到目前为止系统正在运行的应用程序信息。我在这里找到了Java的代码,但没有LuaJ的代码。

以下是我的尝试:

local pm = activity:getPackageManager()
local packages = pm:getInstalledApplications(activity.GET_META_DATA)
local size = packages:size()

for i=0,size-1 do
    packageInfo = packages:get(i)
    if not packageInfo:equals(flags) and not packageInfo:equals(FLAG_SYSTEM) and not packageInfo:equals(FLAG_STOPPED) then
       print(packageInfo.packageName)
    end
end

但是"equals(...)"出现了问题。请帮忙解决。

点赞
用户11012537
用户11012537

这是我自己的答案。

    local pm = activity:getPackageManager()
    local packages = pm:getInstalledApplications(activity.GET_META_DATA)
    local size = packages:size()

    local packageInfo, packageName, ai, str

    for i=0,size-1 do
        packageInfo = packages:get(i)
        packageName = packageInfo.packageName
        ai = pm:getApplicationInfo(packageName)
        if ai and string.find(packageInfo.sourceDir, "^/data/app/") and pm:getLaunchIntentForPackage(packageName) then --非系统应用
            print(pm:getApplicationLabel(ai))
        end
    end
2019-10-18 15:13:57