رفتن به مطلب

محدودیت اجازه دسترسی به برنامه ، فقط برای خریداران !


rezamk111

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

سلام ،

یکی از دوستان روشی برای جلوگیری از تقلب و نصب غیر قانونی برنامه پیدا و توی تاپیکی ارائه کردند . ( لینک تاپیک )

 

یک متد برای دوستان جاوا کار نوشتم که به راحتی این روش رو پیاده کنند . کافیه این متد رو به اکتیویتی اول برنامه خودتون اضافه کنید :

public boolean isInstalledByMarket(String myPackage, String marketPackage){

    String installer = getPackageManager().getInstallerPackageName(myPackage);
    return installer != null && installer.equals(marketPackage);

}

متد بررسی می کنه که آیا برنامه شما توسط مارکت مورد نظر نصب شده یا خیر . ورودی ها به ترتیب پکیج نیم برنامه شما و پکیج نیم مارکت مورد نظر هستند !

و توی یک دستور شرطی میتونید از متد isInstalledByMarket استفاده کنید . مثال :

if (isInstalledByMarket("ir.topideapg.lipsing","com.farsitel.bazaar")){

       Toast.makeText(ActivityMain.this, "خوش آمدید", Toast.LENGTH_SHORT).show();

} else {

       Toast.makeText(ActivityMain.this, "لطفا برنامه را از طریق مارکت ها تهیه و نصب کنید !", Toast.LENGTH_SHORT).show();
       ActivityMain.this.finish();

}

به همین سادگی ( چرا این همه مدت به ذهن خودمون نرسید  :fekr:  :wacko1:  )

 

موفق و موئد باشید .

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

این هم متد b4a که از طریق JavaObject انجام میشه

Sub IsInstalledByMarket(MarketPackageName As String) As Boolean
		Dim jo As JavaObject
		Dim installer As String = jo.InitializeContext.RunMethodJO("getPackageManager",Null).RunMethod("getInstallerPackageName",Array(Application.PackageName))
		Return installer = MarketPackageName
End Sub

استفاده : 

	If IsInstalledByMarket("PackageNameMartet") Then
		ToastMessageShow("az tariqe market nasb shode",False)
		Else
		ToastMessageShow("az tariqe market nasb NASHODE!",False)	
	End If
لینک ارسال
به اشتراک گذاری در سایت های دیگر

دم همتون گرم

اگه سازنده موبوگرام اینو بدونه تو اپدیت های بعدیش اینو میزاره چون 50 درصد مردم موبوگرام رو رایگان از کانال های تلگرام دان کردن

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

ممنون از آقای Amin Shahedi به خاطر تکمیل تاپیک   :give_rose:

 

 

اقا ترکوندینا ایول  :yahoo:  ♥  :give_rose:

ما که بی خبر بودیم ، محمدامین محمدی این روش رو معرفی کرد . البته باید یه تشکر ویژه هم از برنامه کلید برد 2 داشته باشیم  :)  :cheshmak:

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

سلام

یه چیز جالب دیگه که اگه بتونیم پیداش کنیم دیگه خیلی محشر میشه 

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

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

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

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

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

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

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

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

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

سلام

یه چیز جالب دیگه که اگه بتونیم پیداش کنیم دیگه خیلی محشر میشه 

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

 

سلام دوست عزیز ،

 

بله ، طبق این مستند موجود در کافه بازار میشه وضعیت لاگین کاربر رو بررسی کرد !

 

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

 

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

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

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

 

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

پس میشه دیگه نیازی به کد سمت سرور هم نیست فقط ما میخوایم مطمئن بشیم که اون پکیج نیم برا خود بازار باشه که با این روش میشه 

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

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

پس میشه دیگه نیازی به کد سمت سرور هم نیست فقط ما میخوایم مطمئن بشیم که اون پکیج نیم برا خود بازار باشه که با این روش میشه 

 

کاربرای عادی که نمی تونن همچین کاری کنن ،

 

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

 

در این صورت درست میگی ، باید از اون طریق مطمئن شد...

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

 

سلام دوست عزیز ،

 

بله ، طبق این مستند موجود در کافه بازار میشه وضعیت لاگین کاربر رو بررسی کرد !

 

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

 

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

 

 

در بیسیک فور اندروید به چه صورت است

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

در بیسیک فور اندروید به چه صورت است

 

لطفا یک تاپیک جدید در این مورد بزنید تا دوستان پاسخ بدند !

 

موفق باشید

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

 

این هم متد b4a که از طریق JavaObject انجام میشه

Sub IsInstalledByMarket(MarketPackageName As String) As Boolean

        Dim jo As JavaObject

        Dim installer As String = jo.InitializeContext.RunMethodJO("getPackageManager",Null).RunMethod("getInstallerPackageName",Array(Application.PackageName))

        Return installer = MarketPackageName

End Sub

استفاده : 

    If IsInstalledByMarket("PackageNameMartet") Then

        ToastMessageShow("az tariqe market nasb shode",False)

        Else

        ToastMessageShow("az tariqe market nasb NASHODE!",False)    

    End If

 

 

مثلا این سورس رو در برنامه ای که به بازار میخوایم بدیم میریزیم

 

در پکیج نیم های بالا کجا باید اسم پیکیج نیم بازار و گجا ماله برنامه رو باید بدیم ممنون

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

سلام ،

یکی از دوستان روشی برای جلوگیری از تقلب و نصب غیر قانونی برنامه پیدا و توی تاپیکی ارائه کردند . ( لینک تاپیک )

 

یک متد برای دوستان جاوا کار نوشتم که به راحتی این روش رو پیاده کنند . کافیه این متد رو به اکتیویتی اول برنامه خودتون اضافه کنید :

public boolean isInstalledByMarket(String myPackage, String marketPackage){

        String installer = getPackageManager().getInstallerPackageName(myPackage);
        return installer.equals(marketPackage);

}

متد بررسی می کنه که آیا برنامه شما توسط مارکت مورد نظر نصب شده یا خیر . ورودی ها به ترتیب پکیج نیم برنامه شما و پکیج نیم مارکت مورد نظر هستند !

و توی یک دستور شرطی میتونید از متد isInstalledByMarket استفاده کنید . مثال :

if (isInstalledByMarket("ir.topideapg.lipsing","com.farsitel.bazaar")){

       Toast.makeText(ActivityMain.this, "خوش آمدید", Toast.LENGTH_SHORT).show();

} else {

       Toast.makeText(ActivityMain.this, "لطفا برنامه را از طریق مارکت ها تهیه و نصب کنید !", Toast.LENGTH_SHORT).show();
       ActivityMain.this.finish();

}

به همین سادگی ( چرا این همه مدت به ذهن خودمون نرسید  :fekr:  :wacko1:  )

 

موفق و موئد باشید .

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

من کد رو چک کردم ولی برنامه میاد بیرون

یعنی اصلا اکتیویتی باز نمیشه

فکر کنم مشکل از boolean باشه

دسترسی دیگه ای لازم نداره؟؟؟

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

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

من کد رو چک کردم ولی برنامه میاد بیرون

یعنی اصلا اکتیویتی باز نمیشه

فکر کنم مشکل از boolean باشه

دسترسی دیگه ای لازم نداره؟؟؟

 

سلام ،

 

دسترسی که نیاز نداره ، صبر کنید بررسی کنم

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

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

من کد رو چک کردم ولی برنامه میاد بیرون

یعنی اصلا اکتیویتی باز نمیشه

فکر کنم مشکل از boolean باشه

دسترسی دیگه ای لازم نداره؟؟؟

 

سلام مجدد ،

 

کد اول اشتباه بود چون در صورت null بودن installer کرش می کرد . پست اول هم بروزرسانی و کد تصحیح شد !

 

باید موقع return کردن فکری هم برای این مورد می کردیم . خط تصحیح شده :

return installer != null && installer.equals(marketPackage);

موفق و موئد باشید  :give_rose:

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

سلام مجدد ،

 

کد اول اشتباه بود چون در صورت null بودن installer کرش می کرد . پست اول هم بروزرسانی و کد تصحیح شد !

 

باید موقع return کردن فکری هم برای این مورد می کردیم . خط تصحیح شده :

return installer != null && installer.equals(marketPackage);

موفق و موئد باشید  :give_rose:

درود و ممنون به خاطر بررسی

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

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

بایگانی شده

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

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

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