سوال : کد برای شمارش معکوس تعداد روز های سال
سلام خدمت دوستان بنده برای برنامه ام نیاز دارم یک محدودیت 365 روزه یا یک ساله ایجاد کنم و از زمانی که فعال میشه به ترتیب هر روز که سپری میشه به صورت اتوماتیک از تعداد روز ها کم بشه و باید طوری باشه که وقتی برنامه هم باز نیست بتونه حساب کنه تا الان چند روز گذشته ... دوستان واقعا ممنون میشم راهنمایی کنید سپاس
من پیشنهاد میکنم شما ماه و روز رو از یک سروسر که دقیق باشه و یا از ساعت خود دیوایس بگرید
اگر ماه برابر با هر عددی بین 1 تا 12 بود رو برابر با یک عدد بزارید و تعداد روز رو به اون اضاف کنید و از 365 کم کنید
مثلا : (سال کبیسه هم که باید 357 روز باشه <)
> 03 اردیبهشت<
31 = اردیبهشت 3 = 03 31 + 3 = 34 356 - 34 = 322
روش های قفل نرم افزار بسیار مختلف است. یکی از روش ها می تواند به این شکل باشد :
شما نیاز ندارید که همیشه تاریخ را از سرور بخوانید. می توانید تاریخ را از روی گوشی بخوانید و کار بر را مجبور کنید که مثلا هر 30 روز یکبار به اینترنت وصل شود یا اصلا خودتان هم کنترل کنید که هر زمان به اینترنت وصل شد یک بار قفل خود را کنترل کنید.
برای اینکه خیالتان از تغییرات ساعت داخلی راحت باشد هم می توان این چند کار را انجام داد :
- 1- همیشه آخرین باری که وارد نرم افزار شده اید را نگه داری کنید و اگر تاریخ جدید قبل از آخرین ورود کاربر بود یعنی کاربر ساعت سیستم را عقب آورده پس برنامه تازمانی که به اینترنت وصل نشود غیر فعال می ماند.
- 2- در تعداد دفعات باز شدن برنامه بین فواصل یکماهه هم محدودیت بگذارید. فرض کنید برنامه شما به صورت میانگین باید روزی 3 مرتبه باز شود. یعنی در هر ماه 90 مرتبه. پس اگر حتی زود تر از یکماه مثلا 100 مرتبه برنامه باز و بسته شده بود باز درخواست اینترنت کنید.
- 3- برای جلوگیری از نصب مجدد نرم افزار در اولین استفاده حتما اینترنت درخواست کنید.
- 4- خودتان هم زمان هایی که کاربر به انترنت وصل می شود قفل تان را کنترل کنید.
- 5- برای ارتباط با سرور از دیتای رمز نگاری شده استفاده کنید.(لزوما رمز نگاری خیلی چیز پیچیده ای نیست. می توانید هر داده ای را که فقط خودتان از آن سر در می اورید باشد که کسی توانایی جعل آن را نداشته باشد.)
- و ...
(پیشنهاد می کنم موضوع تاپیک را به قفل نرم افزاری دارای محدودیت زمان تغییر دهید. )
اول از همه یک درخواست برای شروع بکار برنامه به سرور بفرستید ، بعد یک expire Time برای برنامه در سرور تولید کنید ، این مقدار برای یک شناسه ی واحد که قبلا در مورد ساخت اش زیاد بحث شده ، ساخته میشه
این مقدار رو به برنامه ی اندروید منتقل کنید ، با روش هایی که دوستمون گفت مطمئن بشید که کاربر نمیخود شما رو دور بزنه !
اما بهترین چیزی که به ذهن من رسید و در پروژه ی فعلیم ازش استفاده کردم :
کاربر هفته ای یک بار باید با سرور ارتباط برقرار کند و تائید هویت بشه ! ، در غیر اینصورت اجازه ی استفاده از برنامه رو نداره ، اینکه کی سرور رو برسی کنیم هم میشه یک preferene و یک مقدار long ، حالا فرض کنیم کاربر برنامه رو ریست کنه ، دیتا رو پاک کنه و..
برای حل این مشکل هم در اولین اجرا با سرور ارتباط برقرار کنید :)
(در برنامه ی من این موضوع زمانی پیش میومد که مدیر کاربر رو بن میکرد ، کاربر کلا بدون اینترنت وارد برنامه می شد و سعی به دور زدن برنامه میکرد ، پس نهایتا بعد از یک هفته ، استفاده ی غیر مجاز مچش رو میگیرم D: )
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .