رفتن به مطلب

ساخت lock Screen در b4a


مصطفی حقیقی

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

سلام

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

گفتم یه آموزش جنجالی بذارم حالشو ببرید دیگه *vibre*

خب شما اول میاید یه Intent تعریف می کنید

مهم همین جاست که اجزای intent چی باشه

به این شکل بنویسید

    Dim i As Intent
   i.Initialize (i.ACTION_MAIN ,"")
   i.AddCategory ("android.intent.category.HOME")
   i.Flags =0x3400000
   i.SetComponent("android/com.android.internal.app.ResolverActivity")

بعد میایم یه Service Module ایجاد می کنیم

StartService(lock)

حالا اینم کد کلی که باید داخل Activity_Create بذارین

Sub Activity_Create(FirstTime As Boolean)
   Dim i As Intent
   i.Initialize (i.ACTION_MAIN ,"")
   i.AddCategory ("android.intent.category.HOME")
   i.Flags =0x3400000
   i.SetComponent("android/com.android.internal.app.ResolverActivity")
StartService(lock)
Activity.Finish
End Sub

حالا می خوایم چک کنیم که Lock Screen ما تنظیم شده یا نه

Sub Activity_Resume
   Dim r As Reflector
   r.Target = Activity.GetStartingIntent
   If r.RunMethod2("hasCategory", "android.intent.category.HOME", "java.lang.String") Then
    Log(Activity.GetStartingIntent)
   End If
End Sub

کار ما تو ".Main" تموم شد میریم سراغ Service خودمون که من اسمش رو گذاشتم "lock"

حالا یه BroadCastReceiver تعریف کنید

Dim Broadcast As BroadCastReceiver

بعد تو Service_Start تنظیمش کنید

Sub Service_Start (StartingIntent As Intent)
   Broadcast.addAction("android.intent.action.SCREEN_OFF")
Broadcast.SetPriority(2147483647)
Broadcast.registerReceiver("") 'here you can add the main action (intent)
End Sub

حالا هم sub برای OnReceived میسازیم که محتویاتش برای استارت زدن activity lock ماست

Sub BroadcastReceiver_OnReceive (Action As String,Obj As Object)
    Dim Intent1 As Intent
       Intent1.Initialize(Intent1.ACTION_MAIN, "")
	Intent1.Flags = 268435456
       Intent1.SetComponent("ehem.ehem/.sa")
	StartActivity(Intent1)
End Sub

اینم یادتون نره که حتما یه activity دیگه هم بسازین که وقتی lock شد به رو اون که اسم activity من اینجا sa هست

بعد برین به manifest editor خودتون و این کد رو بهش اضافه کنید

AddActivityText("main",
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.HOME" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.MONKEY"/>
</intent-filter>)

تموم شد

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

اگه مشکلی بود بگین

lockscreen.rar

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

مرسی داش

2 تا کتابخانه هم احتیاجه من لینک میدم

دانلود

پسورد : basic4android.org

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

میتونی الگو رو برداری و خوت یه lock screen برای خودت بنویسی

آره چرا که نه *vibre*

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

این که تو لیست قفل ها نمیاد چطوری باید تنظیمش کرد به جای الگو؟

ببخشید اگه سوالم بی مورده

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

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

نگاه کن بیشتر lock screen هایی که دانلود می کنین یا تو بازار ها دارن به همین روش نوشته میشه

یعنی موقعی که صفحه خاموش میشه Screen lock باز میشه

درواقع یک نوع برنامه ست که فقط موقعیت ها رو شناسایی می کنه با همون Broadcast

به همین سادگی

این ساده ترین روش برای این موضوعه

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

  • 3 ماه بعد...

سلام

من میخوام برا ورود به برنامه رمز بدم . آیا برنامه شما همان چیزی هست که من میخوام ؟

ممنون میشم جواب بدید

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

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

یعنی وقتی صفحه گوشی روشن شد اکتیویتی که شما تعیین کردید رو نمایش میده.

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

سلام

من میخوام برا ورود به برنامه رمز بدم . آیا برنامه شما همان چیزی هست که من میخوام ؟

ممنون میشم جواب بدید

شما میتونی یه فایل txt بزاری و این کد رو اولش بنویسید

if text1.text = "basic4android.org" then
startactivity(dost)
else 
End
end if

توجه کنید که بجای dost اسم اکتیویتی خودتون رو بنویسید

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

سلام

من میخوام برا ورود به برنامه رمز بدم . آیا برنامه شما همان چیزی هست که من میخوام ؟

ممنون میشم جواب بدید

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

آره دیگه دقیقا همون چیزیه که گفتم

حالا شما دوتا حرکت استراتیژیکی میتونی بزنی اینجا

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

یکی هم دیتابیس آنلاین

اما ساده ترین و بهترین و قویترینش اینه که با کد asc کار کنی*همینه*

اینو دان کن ببین واسه رمز چطوره

http://s4.picofile.com/file/8168086084/%D8%B4.zip.html

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

اولا ممنون از آقای حقیقی به خاطر ان سورس مفید.

دوتا سوال داشتم. چطور میشه مثل برنامه go locker خودش بیاد موقع تنظیم صفحه قفل سه تا دکمه منو و بک و هوم رو غیر فعال کنه و ما دیگه برای غیرفعال کردن دکمه home مجبور نباشیم تبدیل به لانچر کنیم برنامه مون رو. یه مورد دیگه هم اینکه وقتی این برنامه رو به عنوان لانچر اصلی گوشی انتخاب می کنیم با هربار زدن home یه لحظه اکتیویتی main ، کریت میشه و بعد finish میشه که این کار از زیبایی کار کم می کنه.

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

راستش خیلی توی سایت اصلی سرچ کردم و در آخر به این نتیجه رسیدم که ارل گفته نمیشه home رو غیر فعال کرد اما توی ذهنم سواله که برنامه هایی مثل go locker یا برنامه های قفلی که توی بازار هستن چطور این کارو انجام دادن؟

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

از دوستان کسی هست که جاوا بلد باشه بتونه کد غیرفعال کردن home رو به صورت کتابخونه یا با reflection یا با javaobject و یا باهرنوع که هست تبدیل کنه استفاده کنیم. من حاضرم هزینش رو هم بدم

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

  • 2 هفته بعد...
سلام

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

گفتم یه آموزش جنجالی بذارم حالشو ببرید دیگه *vibre*

خب شما اول میاید یه Intent تعریف می کنید

مهم همین جاست که اجزای intent چی باشه

به این شکل بنویسید

    Dim i As Intent
   i.Initialize (i.ACTION_MAIN ,"")
   i.AddCategory ("android.intent.category.HOME")
   i.Flags =0x3400000
   i.SetComponent("android/com.android.internal.app.ResolverActivity")

بعد میایم یه Service Module ایجاد می کنیم

StartService(lock)

حالا اینم کد کلی که باید داخل Activity_Create بذارین

Sub Activity_Create(FirstTime As Boolean)
   Dim i As Intent
   i.Initialize (i.ACTION_MAIN ,"")
   i.AddCategory ("android.intent.category.HOME")
   i.Flags =0x3400000
   i.SetComponent("android/com.android.internal.app.ResolverActivity")
   StartService(lock)
   Activity.Finish
End Sub

حالا می خوایم چک کنیم که Lock Screen ما تنظیم شده یا نه

Sub Activity_Resume
   Dim r As Reflector
   r.Target = Activity.GetStartingIntent
   If r.RunMethod2("hasCategory", "android.intent.category.HOME", "java.lang.String") Then
       Log(Activity.GetStartingIntent)
   End If
End Sub

کار ما تو ".Main" تموم شد میریم سراغ Service خودمون که من اسمش رو گذاشتم "lock"

حالا یه BroadCastReceiver تعریف کنید

Dim Broadcast As BroadCastReceiver

بعد تو Service_Start تنظیمش کنید

Sub Service_Start (StartingIntent As Intent)
   Broadcast.addAction("android.intent.action.SCREEN_OFF")
   Broadcast.SetPriority(2147483647)
   Broadcast.registerReceiver("") 'here you can add the main action (intent)
End Sub

حالا هم sub برای OnReceived میسازیم که محتویاتش برای استارت زدن activity lock ماست

Sub BroadcastReceiver_OnReceive (Action As String,Obj As Object)
       Dim Intent1 As Intent
       Intent1.Initialize(Intent1.ACTION_MAIN, "")
       Intent1.Flags = 268435456
       Intent1.SetComponent("ehem.ehem/.sa")
       StartActivity(Intent1)
End Sub

اینم یادتون نره که حتما یه activity دیگه هم بسازین که وقتی lock شد به رو اون که اسم activity من اینجا sa هست

بعد برین به manifest editor خودتون و این کد رو بهش اضافه کنید

AddActivityText("main",





)

تموم شد

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

اگه مشکلی بود بگین

سلام

چرا مقدار flags مربوط به intent1 رو برابر 268435456 گذاشتین؟ ایا یک مقدار خاصیه یا اختیاریه؟

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

نه برادر اختیاری نیست

ما برای این کار نیاز به flag از نوع FLAG_RECEIVER_FOREGROUND نیاز داریم که شمارش این میشه

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

  • 5 ماه بعد...

سلام عالیه فقط چند تا مشکل داره:

1- چرا تو لیست لانچر میاد؟

2- بعد از چند دقیقه که گوشی غیر فعال باشه دیگه با باز کردن قفل برنامه باز نمیشه و باید دوباره برنامه رو اجرا کرد

3- وقتی از لیست لانچر این برنامه رو برای همیشه انتخاب میکنیم دکمه "هوم" کارایی خودشو از دست میده

ممنون میشم راه حل رفع این مشکلات رو بگین. بازهم ممنون

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

سلام .

من دقیقا همین آموزش شما رو انجام دادم اما جواب نداد!

همش یه پیام می داد که می خواید برنامه رو به عنوان صفحه اصلی انتخاب کنید ؟؟؟

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

بایگانی شده

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

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

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