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

تشخیص نصب برنامه با BroadCastReceiver


hosseinkarimian

سوال

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

میدونم با BroadCastReceiver میشه اما چطوری شو هرچقدر سرچ کردم پیدا نکردم

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

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

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

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

#If java
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.widget.Toast;
import anywheresoftware.b4a.BA;

public void registerreciver(){
		BroadcastReceiver br = new BroadcastReceiver() {
				@Override
				public void onReceive(Context arg0, Intent arg1) {
				if(arg1.getAction().equalsIgnoreCase(Intent.ACTION_PACKAGE_ADDED)){
					String packagename=arg1.getData().toString().substring(8);
							PackageManager packageManager= BA.applicationContext.getPackageManager();
							String appName="";
							try {
								appName = (String) packageManager.getApplicationLabel(packageManager.getApplicationInfo(packagename, PackageManager.GET_META_DATA));
							} catch (NameNotFoundException e) {
								// TODO Auto-generated catch block
								e.printStackTrace();
							}
			        Toast.makeText(BA.applicationContext,appName, Toast.LENGTH_LONG).show();
			    }}
			};
			IntentFilter intentFilter = new IntentFilter();
			intentFilter.addAction(Intent.ACTION_PACKAGE_ADDED);
			intentFilter.addDataScheme("package");
			BA.applicationContext.registerReceiver(br, intentFilter);
	}
#End If

حالا  کتابخونه javaobject رو تیک بزنید و به شکل زیر عمل کنید

Sub Process_Globals
Dim jv As JavaObject
End Sub
Sub Service_Start (StartingIntent As Intent)
	jv.InitializeContext.RunMethod("registerreciver",Null)
End Sub

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

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

البته شیوه آقای شاهپیری هم خوبه...

اما آقای شاهدی کتابخونه BroadCastReciver رو یک بار دیگه و بسیارکاملتر برای بیسیک رپ کردند...

بنظرم از اون استفاده کنید تا هم خط کدهاتون کمتر باشه و هم راحتتر باشید

موفق باشید

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

در 17 دقیقه قبل، AMiN.M7892 گفته است :

البته شیوه آقای شاهپیری هم خوبه...

اما آقای شاهدی کتابخونه BroadCastReciver رو یک بار دیگه و بسیارکاملتر برای بیسیک رپ کردند...

بنظرم از اون استفاده کنید تا هم خط کدهاتون کمتر باشه و هم راحتتر باشید

موفق باشید

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

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

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

یه کتابخونه کوچیک واستون آماده کردم فک نکنم دیگه مشکلی باشه

اول همه کدهای بالا که دادم رو حذف کنید کتابخونه زیر رو اد و تیکشو فعال کنید و توی سرویس به شکل زیر عمل کنید

Sub Process_Globals
	Dim m As M_Reciver
End Sub
Sub Service_Start (StartingIntent As Intent)
	m.registerreciver
End Sub

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

Sub packagerecive (package As String)
	ToastMessageShow(package,False)
End Sub

دقت کنید به محض اینکه پکیج نصب شد متد بالا اجرا و پکیج گرفته میشه حالا شما دیگه دستتون بازه و هرکاری میخواید با این پکیج انجام بدید با تیک زدن کتابخونه phone  و استفاده از packagemanager که دیگه به عهده خودتون

M_Brodcast

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

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

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

یه کتابخونه کوچیک واستون آماده کردم فک نکنم دیگه مشکلی باشه

اول همه کدهای بالا که دادم رو حذف کنید کتابخونه زیر رو اد و تیکشو فعال کنید و توی سرویس به شکل زیر عمل کنید


Sub Process_Globals
	Dim m As M_Reciver
End Sub
Sub Service_Start (StartingIntent As Intent)
	m.registerreciver
End Sub

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


Sub packagerecive (package As String)
	ToastMessageShow(package,False)
End Sub

دقت کنید به محض اینکه پکیج نصب شد متد بالا اجرا و پکیج گرفته میشه حالا شما دیگه دستتون بازه و هرکاری میخواید با این پکیج انجام بدید با تیک زدن کتابخونه phone  و استفاده از packagemanager که دیگه به عهده خودتون

M_Brodcast

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

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

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

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

یه کتابخونه کوچیک واستون آماده کردم فک نکنم دیگه مشکلی باشه

اول همه کدهای بالا که دادم رو حذف کنید کتابخونه زیر رو اد و تیکشو فعال کنید و توی سرویس به شکل زیر عمل کنید


Sub Process_Globals
	Dim m As M_Reciver
End Sub
Sub Service_Start (StartingIntent As Intent)
	m.registerreciver
End Sub

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


Sub packagerecive (package As String)
	ToastMessageShow(package,False)
End Sub

دقت کنید به محض اینکه پکیج نصب شد متد بالا اجرا و پکیج گرفته میشه حالا شما دیگه دستتون بازه و هرکاری میخواید با این پکیج انجام بدید با تیک زدن کتابخونه phone  و استفاده از packagemanager که دیگه به عهده خودتون

M_Brodcast

سلام داداش. خوبی؟ چه خبرا؟؟

الان با این میشه فهمید کاربر لاکی پچر نصب کرده؟ و بعد مثلا پیام داد شما هک نصب کردی فروشگاه برای شما غیر فعاله؟ اگر با این کتابخونه میشه، پکیج نیم رو کجا بنویسم؟؟ تو پرانتز ساب پکیج سرویس؟ ممنون میشم ج بدین

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

در 32 دقیقه قبل، vistamobile گفته است :

سلام داداش. خوبی؟ چه خبرا؟؟

الان با این میشه فهمید کاربر لاکی پچر نصب کرده؟ و بعد مثلا پیام داد شما هک نصب کردی فروشگاه برای شما غیر فعاله؟ اگر با این کتابخونه میشه، پکیج نیم رو کجا بنویسم؟؟ تو پرانتز ساب پکیج سرویس؟ ممنون میشم ج بدین

سلام داداش. نوکرم. شکر خدا. دستو پنجه نرم میکنیم با مصائب دنیا:malih:

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

اما در مورد این کتابخونه فسقلی که واسه دوستمون گذاشتم.:malih: ببین مختار جان این کتابخونه تو خودش یه برودکست با اکشن ACTION_PACKAGE_ADDED رو رجیستر میکنه به محضی که برودکست رجیستر بشه هر برنامه ای که نصب کنه کاربر پکیجش گرفته و به برنامه ما فرستاده میشه. تنها کارش همینه. 

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

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

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

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

بایگانی شده

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

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

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