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

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


rasoul.t

سوال

سلام

من یه برنامه تو گوشیم نصبه ولی جوری هست که آیکنش در لیست برنامه ها نمایش داده نمیشه. برنامه هیچ مشکلی نداره و کار میکنه

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

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

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

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

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

نه لانچر پیشفرض سامسونگ

دیدین بعضی از برنامه های گوگل رو که نصب میکنین اخرش که نصب شد گزینه open  غیر فعال میشه. مثل هموناست

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

کدهایی که واسه شناسایی پکیج استفاده میکنید چی هست؟

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

ببخشید،

من فکر کردم مشکل شما فقط مخفی بودن برنامس...

کدهاتونو قرار بدید، من یا آقای شاهپیری بررسی میکنیم.

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

Dim Setup As SInstaller
Dim Status As PackageManager
Dim StatusIntent As Intent

StatusIntent=Status.GetApplicationIntent("com.sample.pkg")
	
	If StatusIntent.IsInitialized= False Then
	File.Copy(File.DirAssets,"sample.apk",File.DirRootExternal,"sample.apk")
	Setup.Initialize(File.DirRootExternal,"sample.apk")
	Setup.install
	End If

برنامه ام دیگر پکیج ها مثل بازار و غیره رو شناسایی میکنه فقط پکیج هایی که فاقد آیکن هستن و در صورت فراخوانی اجرا میشن رو نمیتونه شناسایی کنه. میخوام کاری کنم که اگه پکیج برنامه نصب نبود اونو نصب کنه ولی هربار که برنامه رو اجرا میکنم خودکار پکیج رو نصب میکنه

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

غلط چک میکنید عزیز

If StatusIntent.IsInitialized= False Then

این خط همیشه ارزشش true هست چون نرم افزار قابل اجرا نیست پس اصلا اینشیالایز نمیشه

به صورت زیر چک کنید

اول کتابخونه javaobject رو تیک بزنید و متد زیر رو به اکتیویتی اضافه کنید

#If java
import android.content.pm.PackageManager;
import anywheresoftware.b4a.BA;

public boolean chekinstall(String uri) {
        PackageManager pm = BA.applicationContext.getPackageManager();
        try {
            pm.getPackageInfo(uri, PackageManager.GET_ACTIVITIES);
            return true;
        } catch (PackageManager.NameNotFoundException e) {
        }

        return false;
    }
#End If

حالابه صورت زیر چک کنید که پکیجتون نصبه یا نه

Dim j As JavaObject
	Dim chekinstall As Boolean=j.InitializeContext.RunMethod("chekinstall",Array As Object("yourpackage"))
	If chekinstall Then
		ToastMessageShow("app installed",False)
		Else
			ToastMessageShow("app not installed",False)
	End If

 

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

هنگام شروع این خطا رو میده

object should first be initialized (javaobject)

ضمنا از این کد ایراد میگیره

Dim chekinstall As Boolean=j.InitializeContext.RunMethod("chekinstall",Array As Object("com.sample.pkg"))

به این صورت نوشتمش

Dim chekinstall As Boolean=j.RunMethod("chekinstall",Array As Object("com.sample.pkg"))

 

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

دوست عزیز کدهاتو تو تگ کد قرار بده که بتونه بخونه آدم

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

دقت کنید حتما متد جاوا رو اضافه کنید و کتابخونه رو هم تیک بزنید نباید مشکلی باشه(کدها رو دقیقا همونجوری که گذاشتم بدین. تغییر ندین چیزی رو فقط پکیج رو جایگذاری کنید

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

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

checkinstall not found in: com.sample.b4a

 

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

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

#If java
import android.content.pm.PackageManager;
import anywheresoftware.b4a.BA;

public boolean chekinstall(String uri) {
        PackageManager pm = BA.applicationContext.getPackageManager();
        try {
            pm.getPackageInfo(uri, PackageManager.GET_ACTIVITIES);
            return true;
        } catch (PackageManager.NameNotFoundException e) {
        }

        return false;
    }
#End If

 

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

کدهای اکتیویتی رو پیوست کنید

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

#Region  Project Attributes 
	#ApplicationLabel: test
	#VersionCode: 1
	#VersionName: 1.0
	'SupportedOrientations possible values: unspecified, landscape or portrait.
	#SupportedOrientations: landscape
	#CanInstallToExternalStorage: False
#End Region

#Region  Activity Attributes 
	#FullScreen: True
	#IncludeTitle: False
#End Region
#If java
import android.content.pm.PackageManager;
import anywheresoftware.b4a.BA;

public boolean chekinstall(String uri) {
        PackageManager pm = BA.applicationContext.getPackageManager();
        try {
            pm.getPackageInfo(uri, PackageManager.GET_ACTIVITIES);
            return true;
        } catch (PackageManager.NameNotFoundException e) {
        }

        return false;
    }
#End If


Sub Process_Globals
	Dim Setup As SInstaller
End Sub

Sub Globals

End Sub

Sub Activity_Create(FirstTime As Boolean)
	
Dim j As JavaObject
Dim chekinstall As Boolean
chekinstall=j.InitializeContext.RunMethod("chekinstall",Array As Object("com.sample.pkg"))
	If chekinstall Then
		ToastMessageShow("app installed",False)
		Else
		File.Copy(File.DirAssets,"sample.apk",File.DirRootExternal,"sample.apk")
	Setup.Initialize(File.DirRootExternal,"sample.apk")
	Setup.install
	End If

End Sub

Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)

End Sub

 

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

هیچ مشکلی نداره عزیز

ورژن کتابخونه جاواآبجکتون چنده؟

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

بایگانی شده

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

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

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