رفتن به مطلب

محمدرضا شاهپیری

مدیر کل سایت
  • تعداد ارسال ها

    4,153
  • تاریخ عضویت

  • آخرین بازدید

  • روز های برد

    832

تمامی مطالب نوشته شده توسط محمدرضا شاهپیری

  1. درود به همه عزیزان ورود با بازار توی کاتلین پیاده سازی شده. برای راحتی کار جاواکاران عزیز یه کلاس واسط نوشتم که بدون دردسر میتونید ازش استفاده کنید اول کلاس کاتلین زیر رو به پروژه تون اضافه کنید package com.poolakey.wrapper import android.content.Intent import androidx.fragment.app.FragmentActivity import com.farsitel.bazaar.BazaarClientProxy import com.farsitel.bazaar.core.BazaarSignIn import com.farsitel.bazaar.core.BazaarSignInClient import com.farsitel.bazaar.core.callback.BazaarSignInCallback import com.farsitel.bazaar.core.model.BazaarSignInOptions import com.farsitel.bazaar.core.model.SignInOption import com.farsitel.bazaar.storage.BazaarStorage import com.farsitel.bazaar.storage.callback.BazaarStorageCallback /** * Created by Mohamadreza Shahpiri on 11/22/2024. * Answercenter.ir *************************************************** */ class BazaarSignInWrapper { private var client: BazaarSignInClient? = null private var activity: FragmentActivity? = null fun initialize(activity: FragmentActivity) { val signInOption = BazaarSignInOptions.Builder(SignInOption.DEFAULT_SIGN_IN).build() client = BazaarSignIn.getClient(activity, signInOption) } fun startSignInIntent() { val intent = client?.getSignInIntent() activity?.startActivityForResult(intent, 1) } fun getAccountFromIntent(intent: Intent) = BazaarSignIn.getSignedInAccountFromIntent(intent) fun getLastSignedInAccount(callback: BazaarSignInCallback) = BazaarSignIn.getLastSignedInAccount(activity!!, activity, callback) fun getLastSignedInAccountSync() = BazaarSignIn.getLastSignedInAccountSync(activity!!, activity) fun saveData( data: ByteArray, callback: BazaarStorageCallback ) { BazaarStorage.saveData( context = activity!!, owner = activity, data = data, callback = callback ) } fun getSavedData( callback: BazaarStorageCallback ) { BazaarStorage.getSavedData( context = activity!!, owner = activity, callback = callback ) } fun isNeededToUpdateBazaar() = BazaarClientProxy.isNeededToUpdateBazaar(activity!!) fun showInstallBazaarView() = BazaarClientProxy.showInstallBazaarView(activity!!) fun showUpdateBazaarView() = BazaarClientProxy.showUpdateBazaarView(activity!!) } به شکل زیر هم توی جاوا میتونید استفاده کنید package com.poolakey.core; import android.content.Intent; import android.os.Bundle; import androidx.annotation.Nullable; import androidx.fragment.app.FragmentActivity; import com.farsitel.bazaar.BazaarResponse; import com.farsitel.bazaar.core.callback.BazaarSignInCallback; import com.farsitel.bazaar.core.model.BazaarSignInAccount; import com.farsitel.bazaar.storage.callback.BazaarStorageCallback; import com.poolakey.wrapper.BazaarSignInWrapper; public class MainActivity extends FragmentActivity { private BazaarSignInWrapper bazaarSignInWrapper; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); bazaarSignInWrapper.initialize(this); bazaarSignInWrapper.startSignInIntent(); bazaarSignInWrapper.getLastSignedInAccount(new BazaarSignInCallback() { @Override public void onAccountReceived(BazaarResponse<BazaarSignInAccount> account) { } }); bazaarSignInWrapper.saveData("test data".getBytes(), new BazaarStorageCallback() { @Override public void onDataReceived(@Nullable BazaarResponse<byte[]> response) { if (response!=null){ String data= new String(response.getData()); } } }); bazaarSignInWrapper.getSavedData(new BazaarStorageCallback() { @Override public void onDataReceived(@Nullable BazaarResponse<byte[]> response) { if (response!=null){ String data= new String(response.getData()); } } }); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); BazaarSignInAccount account = bazaarSignInWrapper.getAccountFromIntent(data); if (account != null) { String accountId = account.getAccountId(); } } } بقیه متدها رو هم به راحتی میتونید استفاده کنید. مانا باشید
  2. خط زیر رو اضافه کنید به گریدل احتمالا اکی میشه buildFeatures { aidl = true }
  3. درود. خود اندرویداستودیو گزینه ساخت aidl داره. تست کردید اونو؟
  4. خطاکه داره میگی ریسورس زیر رو نمیتونه پیدا کنه style/Theme.AppCompat.NoActionBar ببینید هست همچین استایلی یا نه
  5. عزیز من با این سایت کار نکردم. با پشتیبانیشون مطرح کنید یا از داکیومنتاشون
  6. سلام به دوستان و همکاران عزیزم، دوستان تقریباً خیلی هاتون مارو میشناسید و از فعالیت ها و قصد و نیت ما آگاه هستید. من ضمن اینکه عاشق کارم هستم، عاشق آموزش دادن، یاد دادن، حل مشکلات دیگران و… هم هستم: هدفم از همه‌ی پست های آموزشی، توسعه کتابخانه ها و… اینه که مشکلات دیگران حل بشه و درکل دوست دارم تجربیات خودم رو برای دیگران به اشتراک بذارم. اینکار واقعا سود خاصی نداره و میتونم کلا وقت نذارم براش ولی ضمن علاقه و عشق به این کار باورهایی دارم که نمیتونم یاددادن رو کنار بذارم! ✅ مشکل چیه و چه اتفاقی افتاده؟ همونطور که گفتم هدف ما از توسعه و ساخت کتابخانه و سورس کدهای مختلف کاملا واضح، مشخص و مثبته و همشون برای ارتقا علم شما، برای کمک به توسعه بهتر و راحت تر برنامه های شما ساخته میشه. برای همین فعالیت ماهم بصورت کاملا شناخته شده انجام میشه و هیچوقت نامعلوم یا ناپدید نیستیم و همیشه در دسترسیم(از طریق انجمن و یا تلگرام) و کل اطلاعات بنده (محمدرضا شاهپیری) در سطح اینترنت بخاطر فعالیت های خداروشکر مثبتمون یا شرکت توی مسابقات و چالشهای مختلف برنامه نویسی موجوده، ❗️❗️اما به تازگی نمیدونم اخبار و پیامک های #پلیس_فتا رو دیدین یانه، یک نفر یا چندین نفر اقدام به ساخت #رت و #بدافزار های مختلف و کلاهبرداری های میلیاردی از مردم بدبخت میکنه. خب؟ اکثر این رت ها هم در محیط B4A نوشته شده و از یه سری کتابخانه های من و دیگر دوستان استفاده شده و چون بعد از دیکد کردن(مهندسی معکوس) اینطور اپ ها، از اونجایی که خود افراد سازنده ی این بدافزارها کاملاً مخفی و نامعلوم هستن، اسم Mohamadreza-Shahpiri یا Answercenter بدلیل استفاده از کتابخانه های ما در این بدافزارها که بخاطر تبلیغات داخلش درج کردیم دیده میشه و سر همین موضوع ما هفت هشت ماه با #پلیس_فتا درگیر شدیم، چرا که اکثراً فکر میکنند اون بدافزارها یا سورسش رو ما نوشتیم، درصورتی که فقط از لایبرری ما استفاده شده. حالا شما بگو اون کتابخانه هزاران استفاده‌ی مثبت و کاربردی داشته باشه ولی چون استفاده ی منفی شده همه جا بخش منفیش توی ذهن ها و سرزبون ها میوفته. حالا اون ماجرای درگیری خداروشکر تقریباً تموم شده و عزیزانی که مسئولیت این پرونده رو برعهده داشتن متوجه ی اصل قضیه شدند. ولی بازهم میبینم افرادی به پیوی مراجعه میکنن میگن شما رت میسازی؟ من هرچقدر میخوای پول میدم رت درست میکنی؟ این رت رو شما ساختی میدونم! و کلی فحش هم میخورم سر همین با ایدی های بی نام و نشون و بی هویت… یا دیده میشه دوستان متاسفانه توییت میزنن یا توی کانال هاشون درج میکنن که بعلههه فردی که کلاهبرداری کرده رو پیدا کردیم اینم اسمش اینم شمارش…😄😄 درصورتی که اگر کمی دانش برنامه نویسی اندروید داشته باشن متوجه میشن اون بدافزارها از کلاس یا لایبرری ما استفاده کردند نه اینکه ما اون بدافزار رو نوشته باشیم!! من فقط به این افراد میگم این سوال رو از خودتون بپرسید: کسی که رت یا نرم افزار مخرب میسازه دیوونست که اسم خودش رو درج کنه؟🤔 قطعا مخفی وارد میشه ✋ ما کارمون کاملاً مشخص و واضح هست و هویت‌مون کاملاً مشخصه: نه رت و نرم افزار کلاهبرداری میسازیم نه آموزشش رو میدیم نه وسیله یا سورسی مینویسیم در این رابطه. 🟢 بخش بعدی: دوستان برای مثال اینطور اشخاص از کتابخانه PersianDeviceInfo که میتونه استفاده های کاربردی مختلف برای ایده های مختلف رو داشته باشه میان اقدام به استفاده ی نادرست و کلاهبرداری میکنن. برای مثال اطلاعات دستگاه کاربر رو به یه سرور میفرستن که بعدا ازش توی اپهای فیشینگ و کلاه برداری استفاده کنن.(درصورتی که کار این کتابخانه فقط و فقط نمایش اطلاعات دستگاه هست است و رابطه ای با فیشینگ و کلاهبرداری ندارد) مثلا یکی از ایده هایی که میشه با PersianDeviceInfo انجام داد ایجاد سرویسهای پوش مثل پوش پول هست که شما توی پنل میتونید ببینید یوزرهاتون مثلا چه برند و یا نسخه اندروید و یا اپراتوری دارن. و هزاران ایده های دیگه… 🔺 ولی متاسفانه افراد کلاهبردار با تغییر کدها و شیوه های خودشون ازاینطور موارد استفاده ی کلاهبرداری میکنن ❌ به همین دلیل من مجبور شدم این کتابخونه رو غیرفعال کنم. (شاید بگید چه ربطی داره بذارید هرکی هرجور دوست داره استفاده کنه، بله درسته ولی دوستان به شدت پلیس ایران و حتی خارج درگیر این ماجرا شده و نمیتونیم به دلخواه خودمون عمل کنیم) ضمناً این مورد تنها مربوط به کتابخانه PersianDeviceInfo ما نمیشه، بلکه ممکنه از کتابخانه های دیگه ی ما هم استفاده کرده باشن و بنده اطلاع ندارم. #دردودل واقعا خیلی دلم از این اتفاقات میگیره که از #مردم بدبخت که خودشون هیچی ندارن توی این شرایط و همون اندک چیزی که ته حسابشون هست هم توسط این افراد خالی میشه😔 و اکثر کسایی که حسابشون خالی میشه هم افراد ضعیف و ناآگاه هستن. اصلا میگم #آقای_دزد شما بی خدا و شما بی دین، وجدان تو قبول میکنه که پول چنین افرادی رو بخوری؟ خیلی از همین پول ها پول یارانه افراد هست… 🌸 واقعا خیلی جلوی خودمو نگه داشتم که این مطالب رو نگم ولی اینقدر دیگه پیام میاد ازاین بابت خسته و کلافه شدم و میبینم دیگه تمومی هم نداره یارو اومده ربات ساخته!!! ربات رت ساز که اینکارو ترویج و تکثیر کنه… ✅ حالا چرا اینهارو گفتم و از شما چی میخوام؟ ۱. این پیام یه جور پیام رفع مسئولیت بود که کسایی که از کار و هدف ما آگاه نیستن آگاه بشن! ۲. تا میتونید به پدر و مادر، فامیل ها و آشناهاتون اطلاع بدید و راهنمایی کنید که هر اپلیکیشنی رو دانلود و اطلاعات حسابشون رو هرجایی وارد نکنن ۳. به هیچ وجه روی لینک هایی که براتون پیامک میشه کلیک نکنید! ۴. اگه برنامه نویس هستید خیلی مواظب خودتون باشید از هر لحاظ(هوای خودتون رو داشته باشید و هرکاری رو انجام ندید) ۵. اگه موردی مشکوکی دیدین حتما به #پلیس_فتا یا بنده (https://t.me/answercenter_support) گزارش بدید و کمک کنید هرچه سریعتر ریشه کن بشه این ماجرا چون تقریبا متوجه شدیم که کل این باند زیر سر چند نفره 🔴 مهم: ۱- تمامی مطالب درون سایت و کانال تلگرامی انسرسنتر و کتابخانه های ساخته شده توسط بنده(محمدرضا شاهپیری) کاملاً مثبت و جهت استفاده در برنامه های خوبِ کاربردی می باشد، اما کلاهبردارن با سواستفاده از این کتابخانه های مثبت در بدافزارها هم موجب کلاهبرداری از مردم و هم موجب بدنامی ما و افراد دیگری کار مثبت در این حوزه انجام میدهند خواهند شد. (پ.ن: با ویرایش کدها و تغییرات توسط خودشان بدافزار میسازند) ۲- بنابراین هرگونه سواستفاده از کتابخانه ها، سورس کدها، آموزش ها و تمامی مطالب سایت و کانال تلگرامی ما برعهده خود شخص استفاده کننده است. ۳- تا میتوانید افراد خانواده و آشناهای خود را آگاه کنید و نگذارید روی لینک هایی که برایشان پیامک میشود کلیک کنند. صحبت پایانی: در آخر از دوست خوبم آقا پژمان نیکروان تشکر صمیمانه میکنم به خاطر کمک هایی که به من تو این مساله داشتن چون ما با هم درگیر این قضیه بودیم. خدایا چنان کن سرانجام کار، که تو خشنود باشی و ما رستگار❤️
  7. به چه شکل دیتا رو میخونیم؟ به چه شکل ارسال می‌کنید؟
  8. محمدرضا شاهپیری

    sdk 32

    درود. این رو باید از منیفست هم تنظیم کنید و تارگت رو منظورشون بوده. فایل زیر رو دانلود و توی پوشه platforms اکسترکت کنید و بقیه رو حذف کنید منیفست رو هم به شکل زیر تغییر بدید AddManifestText( <uses-sdk android:minSdkVersion="24" android:targetSdkVersion="35"/> <supports-screens android:largeScreens="true" android:normalScreens="true" android:smallScreens="true" android:anyDensity="true"/>) https://s32.picofile.com/file/8480326176/android_35.rar.html
  9. از متد زیر استفاده کنید. apiKey و مختصات رو جایگذاری کنید خودتون Private Sub getCityNmae(apiKey As String,lat As Double,lng As Double) Dim job As HttpJob job.Initialize("",Me) job.Download($"https://api.neshan.org/v5/reverse?lat=${lat}lng=${lng}"$) job.GetRequest.SetHeader("Api-Key", apiKey) Wait For (job) JobDone(j As HttpJob) If j.Success Then Log(j.GetString) End If job.Release End Sub
  10. درود برای ارتباط با سرور بهتره از کتابخونه های قدرتمندتری مثه رتروفیت یا okhttp استفاده کنید
  11. درود اگه بازیتون آنلاینه باید از سوکت استفاده کنید.
  12. درود. پکیجهای کتابخونه قدیمی هستن. میتونید از گزینه jetify استفاده کنید. احتمالا درست شه
  13. برای به دست آوردن نام شهر باید از api هایی که برای این کاره استفاده کنید. سرچ کنید زیاد هست که البته غیر رایگانن اکثرا.
  14. ایونت رو ست نکرده بودم. سورس زیر رو تست کنید Player.zip
  15. شما همه کارها رو باید توی سرویس انجام بدین. از سورس زیر ایده بگیرید Player.zip
  16. برای پخش موزیک باید از سرویس foreground استفاده کنید
  17. چک کنید که جی پی اس روشن باشه و حتما باید تو فظای باز تست کنید. نباید مشکلی باشه. به جای msgbox از یه لیبل استفاده کنید که لت و لانگ رو نشون بده
  18. با کلید که کلا نمیتونید عزیز. چون میتونه با همون ساین فعلی دوباره ساین کنه. اگه اپ آنلاینه حتما باید سمت سرور موارد امنیتی رو رعایت کنید. محدودیت بزارید. مثلا مثه تلگرام که همه چی سمت سرور داره کنترل میشه. اگه اپ آفلاینه خیلی نمیتونید کاری بکنید واقعا. حالا دقیقا اپتون چی هست؟ و جلوی چه کاری رو میخواید بگیرید؟
  19. نه اینو تغییر ندین. فایل Okhttp.xml رو باز کنید و خطهای زیر رو حذف کنید
  20. درود. باید از کارد ویو استفاده کنید. ایمیج ویو رو توی یه کاردویو بزارید و به کاردویو cornerradius بدین. کتابخونه زیر رو استفاده کنید https://www.b4x.com/android/forum/threads/cardview-wrapper-for-the-standard-android-cardview.74930/
  21. درود به فایل xml کتابخونه SimpleMediaManager برید و وابستگی okhttp رو حذف کنید. آخرای فایله و با dependson نوشته شده
  22. عزیز من منطق و بیزینس کارتونو نمیدونم ممکنه مشکل از هر چیزی باشه. اگه همه دیتاها درست ذخیره میشه یعنی متد doInbackground کارشو درست انجام میده. مشکل از جای دیگه اس. جاهای مختلف لاگ بزارید ببینید تا کجا میرسه و کجا دیگه لاگ نمیده همونجا دنبال خطا بگردید
  23. محمدرضا شاهپیری

    چرخش تصویر

    درود فکر کنم اگه به b4xview تبدیلش کنی بشه چرخوندش کد زیر رو یه ترای بزنید Dim poPan As B4XView = yourview poPan.Rotation = 45
  24. تعداد که خیلی مهم نیست چون تو بکگراند انجام میشه. متدها رو توی try/catch بزارید شاید خود توابع خطا میدن و اینکه بین هر تکرار حلقه یه تاخیر چند میی ثانیه ای بزارید
  25. راهی نداره دوست عزیز. حتی فایل منیجر پیشفرض اندروید هم این مجوز رو نداره و نمیتونه تو این مسیرها کاری بکنه
×
×
  • اضافه کردن...