رفتن به مطلب
  • 0

برنامه های نصب شده


اندرویدستان

سوال

سلام

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

 

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

android.permission.QUERY_ALL_PACKAGES

 

چون بازار و مایکت قبول نمیکنند

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

 

ممنون از همه اساتید محترم

لینک ارسال
به اشتراک گذاری در سایت های دیگر

5 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

۱۴ ساعت قبل، farsroom گفته است:

میخواستم یک برنامه اشتراک اپلیکیشن درست کنم تا احتیاج به استفاده از ShareIt نباشد

با امکانات بیشتر و سریعتر

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

#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

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام و درود. برنامه های نصب شده جز موارد شخصی و خصوصی کاربر هست. مورد استفاده تون چی هست؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

۸ ساعت قبل، محمدرضا شاهپیری گفته است:

سلام و درود. برنامه های نصب شده جز موارد شخصی و خصوصی کاربر هست. مورد استفاده تون چی هست؟

میخواستم یک برنامه اشتراک اپلیکیشن درست کنم تا احتیاج به استفاده از ShareIt نباشد

با امکانات بیشتر و سریعتر

لینک ارسال
به اشتراک گذاری در سایت های دیگر

۱۲ ساعت قبل، محمدرضا شاهپیری گفته است:

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

#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

 

عالی بود

درست  شد

ممنون

لینک ارسال
به اشتراک گذاری در سایت های دیگر

ای کاش میشد آیکن برنامه را هم نشون داد

همه چیز رو تست کردم

نشد

ممنون

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...