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

گرفتن لیست نرم افزارهای قابل اجرا


Milad-Mohammadi

سوال

سلام دوستان.

من میخوام لیست برنامه های قابل اجرا رو بگیرم، یعنی نرم افزار هایی که در لانچر قابل مشاهده هستن، این تیکه کد جاوا رو یافتم:

final PackageManager pm = getActivity().getPackageManager();
Intent intent = new Intent(Intent.ACTION_MAIN, null);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
List<ResolveInfo> apps = pm.queryIntentActivities(intent, PackageManager.GET_META_DATA);

 

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

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

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

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

به صورت زیر انجام بدید عزیز

اول متد جاوای زیر رو اضافه کنید(همون متد خودتونه با یه سری تغییرات)

#If java
import java.util.List;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import anywheresoftware.b4a.BA;
import anywheresoftware.b4a.objects.collections.Map.MyMap;

public MyMap getapp(){
		MyMap mymap=new MyMap();
		 PackageManager pm = BA.applicationContext.getPackageManager();
		Intent intent = new Intent(Intent.ACTION_MAIN, null);
		intent.addCategory(Intent.CATEGORY_LAUNCHER);
		List<ResolveInfo> apps = pm.queryIntentActivities(intent, PackageManager.GET_META_DATA);
		if (!apps.isEmpty()){
			for(int i=0;i<apps.size();i++){
				ResolveInfo resuInfo =apps.get(i);
				String pakagename=resuInfo.activityInfo.packageName;
				mymap.put(i, pakagename);	
			}
		}
		return mymap;
	}

#End If

 

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

Dim m As Map
	m.Initialize
	Dim jav As JavaObject
	m=jav.InitializeContext.RunMethod("getapp",Null)
	For i=0 To m.Size-1
		Dim pkgmgr As PackageManager
		Dim pkgname As String=m.GetValueAt(i)
		ListView1.AddTwoLines(pkgmgr.GetApplicationLabel(pkgname),pkgname)
	Next

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

AddPermission(android.permission.GET_TASKS)

موفق باشید

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

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

مشکل من اینه که فقط به برنامه های قابل اجرا نیاز دارم...ببینید:

2016-11-05.png

 

اون قسمتی که فلش قرمز زدم، نمیخوام این برنامه های سیستمی نمایش داده بشن. میخوام تمام برنامه های قابل اجرا نمایش داده بشن.

حالا من میام برنامه های نصب شده توسط کاربر رو میگیرم، کار انجام میشه اما نرم افزار هایی مثل مخاطبین که تیک زدم توی لیست نمیاد.

 

تو سایت مرجع هم کسی همچین مشکلی داشت که ارل پیشنهاد داد پکیج نیم برنامه رو بده اما تو هر گوشی ممکنه پکیج نیم مخاطبین یا پیامک ها فرق کنه. فقط تو جاوا راهش هست که من طریقه پیاده سازیش تو بیسیک رو بلد نیستم!!!

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

در هم اکنون، Milad-Mohammadi گفته است :

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

مشکل من اینه که فقط به برنامه های قابل اجرا نیاز دارم...ببینید:

2016-11-05.png

 

اون قسمتی که فلش قرمز زدم، نمیخوام این برنامه های سیستمی نمایش داده بشن. میخوام تمام برنامه های قابل اجرا نمایش داده بشن.

حالا من میام برنامه های نصب شده توسط کاربر رو میگیرم، کار انجام میشه اما نرم افزار هایی مثل مخاطبین که تیک زدم توی لیست نمیاد.

 

تو سایت مرجع هم کسی همچین مشکلی داشت که ارل پیشنهاد داد پکیج نیم برنامه رو بده اما تو هر گوشی ممکنه پکیج نیم مخاطبین یا پیامک ها فرق کنه. فقط تو جاوا راهش هست که من طریقه پیاده سازیش تو بیسیک رو بلد نیستم!!!

کدوم یکی از اینا منظورتون هست :

01 - برنامه مخاطبین را به شما بده

02 - کلا برنامه های سیستم رو نده

03 - یا برنامه هایی که در اجرا مشکل ندارن و قابل اجرا هستند را بده

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

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

به صورت زیر انجام بدید عزیز

اول متد جاوای زیر رو اضافه کنید(همون متد خودتونه با یه سری تغییرات)


#If java
import java.util.List;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import anywheresoftware.b4a.BA;
import anywheresoftware.b4a.objects.collections.Map.MyMap;

public MyMap getapp(){
		MyMap mymap=new MyMap();
		 PackageManager pm = BA.applicationContext.getPackageManager();
		Intent intent = new Intent(Intent.ACTION_MAIN, null);
		intent.addCategory(Intent.CATEGORY_LAUNCHER);
		List<ResolveInfo> apps = pm.queryIntentActivities(intent, PackageManager.GET_META_DATA);
		if (!apps.isEmpty()){
			for(int i=0;i<apps.size();i++){
				ResolveInfo resuInfo =apps.get(i);
				String pakagename=resuInfo.activityInfo.packageName;
				mymap.put(i, pakagename);	
			}
		}
		return mymap;
	}

#End If

 

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


Dim m As Map
	m.Initialize
	Dim jav As JavaObject
	m=jav.InitializeContext.RunMethod("getapp",Null)
	For i=0 To m.Size-1
		Dim pkgmgr As PackageManager
		Dim pkgname As String=m.GetValueAt(i)
		ListView1.AddTwoLines(pkgmgr.GetApplicationLabel(pkgname),pkgname)
	Next

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


AddPermission(android.permission.GET_TASKS)

موفق باشید

عالی بود واقعا ممنونم.. فقط یه سوال دیگه، چطور آیکون اپ رو بگیرم یا توی ساب کلیک لیست ویو چطور برنامه رو اجرا کنیم؟؟؟

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

برای گرفتن آیکن از کد زیر

pkgmgr.GetApplicationIcon(pkgname)

و برای باز کردن هم اول لیست ویو رو به صورت زیر مقدار دهی کنید

ListView1.AddTwoLines2(pkgmgr.GetApplicationLabel(pkgname),pkgname,pkgname)

و حالا هم توی رویداد کلیک به شکل زیر

Sub ListView1_ItemClick (Position As Int, Value As Object)
Dim pm As PackageManager
Dim in As Intent
in.Initialize("","")
in=pm.GetApplicationIntent(Value)
If in.IsInitialized Then 
StartActivity(in)
End If
End Sub

 

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

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

pkgmgr.GetApplicationIcon(pkgname)

من میخوام آیکون اپ هارو داخل لیست ویو بیارم، قبل از اینکه شما این کد رو بزارید خودم امتحان کردم و ارور گرفتم که drawble نمیتونه تبدیل به bitmap بشه!

نقل قول

Sub ListView1_ItemClick (Position As Int, Value As Object)
Dim pm As PackageManager
Dim in As Intent
in.Initialize("","")
in=pm.GetApplicationIntent(Value)
If in.IsInitialized Then 
StartActivity(in)
End If
End Sub

و متاسفانه این کد هم عمل نکرد 

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

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

در 36 دقیقه قبل، مجید آرتا گفته است :

طبق آموزش همون تاپیک من این کد رو گذاشتم:


	
	Dim Intent1 As Intent
	Intent1.Initialize(Intent1.ACTION_MAIN, "")
	Intent1.SetComponent(Value &"/.HomeActivity")
	StartActivity(Intent1)

و این ارور رو گرفتم:

android.content.activity.activitynotfoundexception: unable to find explicit activity class
{11/11.HomeActivity};Have you declared this activity to your manifest.xml?

 

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

در 3 ساعت قبل، Milad-Mohammadi گفته است :

من میخوام آیکون اپ هارو داخل لیست ویو بیارم، قبل از اینکه شما این کد رو بزارید خودم امتحان کردم و ارور گرفتم که drawble نمیتونه تبدیل به bitmap بشه!

قطعا همینطوره عزیز آیگن از نوع drawble‌هست و شما میخواین بیتمپ بدین روشهایی هست که بشه تبدیل رو انجام داد ولی نیازی نیست شما یه مولتی پنل بزار یه ایمیج ویو هم بزار واسه آیکنها

بعد بکگراند ایمیج ویو رو بزار آیکن

و متاسفانه این کد هم عمل نکرد 

یه جایی رو اشتباه رفتین عزیز هیچ مشکلی نداره تست شده و به درستی اجرا میشه

 

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

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

 

دقیقا کدی که لطف کردید نوشتید رو کپی پیست کردم... همه چیز رو چک کردم، ایونت نیم و کدهای اینتنت و ....

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

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

لیست ویو رو به صورت زیر آیتم دادین یا نه؟

ListView1.AddTwoLines2(pkgmgr.GetApplicationLabel(pkgname),pkgname,pkgname)

دقت کن تغییر دادی یا نه؟

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

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

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

لیست ویو رو به صورت زیر آیتم دادین یا نه؟


ListView1.AddTwoLines2(pkgmgr.GetApplicationLabel(pkgname),pkgname,pkgname)

دقت کن تغییر دادی یا نه؟

من معذرت میخوام، جای AddTwoLines2 یچیز دیگه استفاده شده بود..ممنون

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

در 14 ساعت قبل، Milad-Mohammadi گفته است :

سلام دوستان.

من میخوام لیست برنامه های قابل اجرا رو بگیرم، یعنی نرم افزار هایی که در لانچر قابل مشاهده هستن، این تیکه کد جاوا رو یافتم:


final PackageManager pm = getActivity().getPackageManager();
Intent intent = new Intent(Intent.ACTION_MAIN, null);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
List<ResolveInfo> apps = pm.queryIntentActivities(intent, PackageManager.GET_META_DATA);

 

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

سلام

براتون ساختم . سورس + apk

http://s8.picofile.com/file/8273437550/list_all_app.zip.html

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

بایگانی شده

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

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

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