السلام عليكم ورحمة الله وبركاته, انا جديد في استخدام الـbroadcast receiver ولدي بعض الاستفسارات التي بحثت عنها ولم اجد اجابه منطقيه او لم استطع فهمها بكل جيد.
استفساري الاول : بماذا استطيع استخدام الـ broadcast receiver غير الاشعارات؟
أستفساري الثاني: هل استطيع استخدام broadcast receiver واحد لعدد من الاشعارات كأشعار الصلاوات مثلا كـالفجر, والظهر, والمغرب ... الخ؟
استفساري الثالث: أن كان بأمكاني استخدام broadcast receiver واحد كيف يمكنني ان أغير الTitle و الText ؟
بحثت في عدة مواقع ولم أجد اجابة بشكل جيد..
هذه الاكواد التي استخدمتها
broadcast receiver
class fajrBroadcastReceiver :BroadcastReceiver(){
val CHANNEL_ID ="أذان الفجر"
override fun onReceive(context:Context?, intent:Intent?){
val intent =Intent(context,MainActivity::class.java).apply {
flags =Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK
}
val pendingIntent :PendingIntent=PendingIntent.getActivity(context,0,intent,0)
val builder =NotificationCompat.Builder(context!!, CHANNEL_ID).setSmallIcon(R.drawable.ic_fajr_icon).setContentTitle("صلاة الفجر قد حلت")// اريد تغيير هذا السترينق الى عدة جمل.setContentText("بسم الله الرحمن الرحيم")// وهذا ايضا.setPriority(NotificationCompat.PRIORITY_HIGH).setDefaults(NotificationCompat.DEFAULT_ALL).setContentIntent(pendingIntent).setAutoCancel(true)
with(NotificationManagerCompat.from(context)){
notify(123, builder.build())}}}
Setting Activity
val CHANNEL_ID ="أذان الفجر"private lateinit var alarmManager:AlarmManagerprivate lateinit var pendingIntent:PendingIntent// اعداد الافتراضي
defaultTimes.setOnCheckedChangeListener { buttonView, isChecked ->
editor.putBoolean("DefaultTimesSwitch",isChecked)
editor.apply()if(isChecked){
val fajrtime = getSharedPreferences("saveSettingData",Context.MODE_PRIVATE)
calender =Calendar.getInstance()
calender[Calendar.HOUR_OF_DAY]= fajrtime.getInt("fajrTimeHour",0)
calender[Calendar.MINUTE]= fajrtime.getInt("fajrTimeMinutes",0)
calender[Calendar.SECOND]=0
calender[Calendar.MILLISECOND]=0
fajrEditTxt.setHint(""+ fajrtime.getInt("fajrTimeHour",0)+":"+ fajrtime.getInt("fajrTimeMinutes",0)+" AM")
alarmFajr()}else{
fajrEditTxt.hint ="Press"}private fun createNotificationChannel(){
val channelName ="مؤذن الفجر"
val DESCRIPTION_TEXT ="أشعار لأذان الفجر"if(Build.VERSION.SDK_INT >=Build.VERSION_CODES.O){
val name = channelName
val description_text = DESCRIPTION_TEXT
val importance =NotificationManager.IMPORTANCE_HIGH
val channel =NotificationChannel(CHANNEL_ID, name, importance).apply {
description = description_text
}
val notificationManager:NotificationManager=
getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
notificationManager.createNotificationChannel(channel)}}
fun alarmFajr(){
alarmManager = getSystemService(ALARM_SERVICE) as AlarmManager
val i =Intent(this, fajrBroadcastReceiver::class.java)
pendingIntent =PendingIntent.getBroadcast(this,0, i,0)
alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP, calender.timeInMillis,AlarmManager.INTERVAL_DAY, pendingIntent
)}
انا استخدم لغة الكوتلن لكن ان اردت الاجابة بلغة الجافا لا مانع انا اعرف اترجم الجافا الى الكوتلن
شكرا لكم ,,,
تم التعديل في بواسطة عبدالرحمن العنزي4 تعديل بعض الاملاء
السؤال
عبدالرحمن العنزي4
السلام عليكم ورحمة الله وبركاته, انا جديد في استخدام الـbroadcast receiver ولدي بعض الاستفسارات التي بحثت عنها ولم اجد اجابه منطقيه او لم استطع فهمها بكل جيد.
استفساري الاول : بماذا استطيع استخدام الـ broadcast receiver غير الاشعارات؟
أستفساري الثاني: هل استطيع استخدام broadcast receiver واحد لعدد من الاشعارات كأشعار الصلاوات مثلا كـالفجر, والظهر, والمغرب ... الخ؟
استفساري الثالث: أن كان بأمكاني استخدام broadcast receiver واحد كيف يمكنني ان أغير الTitle و الText ؟
بحثت في عدة مواقع ولم أجد اجابة بشكل جيد..
هذه الاكواد التي استخدمتها
broadcast receiver
Setting Activity
انا استخدم لغة الكوتلن لكن ان اردت الاجابة بلغة الجافا لا مانع انا اعرف اترجم الجافا الى الكوتلن
شكرا لكم ,,,
تم التعديل في بواسطة عبدالرحمن العنزي4تعديل بعض الاملاء
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.