گرفتن لیست برنامه های نصب شده روی گوشی بدون دسترسی منیفست

سلام به دوستان یاهو 98

این تکه کد میتونه خیلی کاربردی باوشه

کد زیر رو به اکتیویتی اضافه کنید :

#If java
import android.content.Context;
import android.content.Intent;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import java.util.ArrayList;
import java.util.List;

public static class AppInfo {
    public String package_name;
    public String name;

    public AppInfo(String package_name, String name) {
        this.package_name = package_name;
        this.name = name;
    }
}

public static List<AppInfo> getInstalledApps() {
    Context context = BA.applicationContext;
    List<AppInfo> appsInfo = new ArrayList<>();
    Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
    mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
    PackageManager pM = context.getPackageManager();
    List<ResolveInfo> pkgAppsList = pM.queryIntentActivities(mainIntent, 0);
    for (ResolveInfo info : pkgAppsList) {
        if (info != null && info.activityInfo != null) {
            ApplicationInfo applicationInfo = info.activityInfo.applicationInfo;
            if (!isSystemPackage(applicationInfo)) {
                AppInfo appInfo = new AppInfo(applicationInfo.packageName, applicationInfo.loadLabel(pM).toString());
                appsInfo.add(appInfo);
            }
        }
    }
    return appsInfo;
}

private static boolean isSystemPackage(ApplicationInfo applicationInfo) {
    return (applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0;
}
#End If

 

کد زیر رو به منیفست اضافه کنید

AddManifestText(
<queries>
    <intent>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent>
</queries>
)

به شکل زیر لیست برنامه های نصب شده توسط کاربر رو بگیرید

Dim jo As JavaObject
	jo.InitializeContext
	Dim apps As List=jo.RunMethod("getInstalledApps",Null)
	For Each app As Object In apps
		Dim jo As JavaObject=app
		Dim name As String=jo.GetField("name")
		Dim package_name As String=jo.GetField("package_name")
		Log("name="&name&" *** package="&package_name)
	Next

 

امیدوارم مفید واقع شده باشد .

دیدگاهتان را بنویسید