View Full Version : فهمیدن فشرده شدن کمه ای در کلاس BroadcastReceiver
raha_jon
جمعه 28 فروردین 1394, 11:48 صبح
سلام و خسته نباشید
من کلاسی دارم که از BroadcastReceiver مشتق گرفته شده حالا می خوام در داخل این کلاس وقتی دکمه ی کم کردم صدا زده شد ی لاگی تولید بشه لطفا راهنمایی کنید.
NeoFighT
جمعه 28 فروردین 1394, 12:02 عصر
اینجارو یه نگاه بندازین اگه متوجه نشدین بگین توضیح بدم
http://stackoverflow.com/questions/12561142/android-broadcastreceiver-for-volume-key-up-and-down
raha_jon
جمعه 28 فروردین 1394, 14:04 عصر
تشکر
اما من این کدو قرار میدم ارور میده:ناراحت:
KeyEvent ke = (KeyEvent)arg1.getExtras().get(Intent.EXTRA_KEY_EV ENT);
if (ke.getKeyCode() == KeyEvent.KEYCODE_VOLUME_UP) {
System.out.println("I got volume up event");
}else if (ke .getKeyCode() == KeyEvent.KEYCODE_VOLUME_DOWN) {
System.out.println("I got volume key down event");
}
NeoFighT
جمعه 28 فروردین 1394, 14:24 عصر
توی همونجا توضیح د اده دیگه
میگه که از
arg1.getExtras().get(Intent.EXTRA_KEY_EV ENT);
نمیشه استفاده کرد و به جاش باید از این کد استفاده کنی
int volume = (Integer)intent.getExtras().get("android.media.EXTRA_VOLUME_STREAM_VALUE");
بعد مقدار volume رو log بگیر ببین وقتی دکمه up رو میزنی جه عددی میده و وقتی down رو میزنی چه عددی میده و یه if else بزار با اون 2تا عدد و کارتو انجام بره.
raha_jon
جمعه 28 فروردین 1394, 14:58 عصر
ببخشید آخه من استفاده می کنم ارور میده بنظرم میگه خالی هست
tux-world
جمعه 28 فروردین 1394, 18:32 عصر
این مورد انقدر ها هم سخت نیست. راحته که بابا :D
این کد رو هر جا دوست داشتی که بفهمی بزار
private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String data = intent.getStringExtra("data");
Log.e("data is: ", data);
}
};
خوب حالا باید اینو رجیستر کنی
@Override
public void onPause() {
super.onPause();
unregisterReceiver(broadcastReceiver)
}
@Override
public void onResume() {
super.onResume();
registerReceiver(broadcastReceiver, new IntentFilter(ActivityMain.BroadCastListenr));
}
خوب الان باید از جا میزنی تو گوشش بشنوه باید تعریفش کنی. فقط آروم بزنی ها :قهقهه: تو کلاس ActivityMain من اینو نوشتم
public static final String BroadCastListenr = "SalamBroadcastService";
private static Intent broadcastIntent = new Intent(BroadCastListenr);
حالا باید بگی وقتی اتفاقی افتاد خبر بده :
broadcastIntent.putExtra("data", "Khabar Khabaaaaar !!");
sendBroadcast(broadcastIntent, null);
خوب تموم شد :چشمک:
tux-world
جمعه 28 فروردین 1394, 18:32 عصر
این مورد انقدر ها هم سخت نیست. راحته که بابا :D
این کد رو هر جا دوست داشتی که بفهمی بزار مثلا ActivityLogin
private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String data = intent.getStringExtra("data");
Log.e("data is: ", data);
}
};
خوب حالا باید اینو رجیستر کنی تو هیمن فایلی که کد بالا رو میزاری منظورمه
@Override
public void onPause() {
super.onPause();
unregisterReceiver(broadcastReceiver)
}
@Override
public void onResume() {
super.onResume();
registerReceiver(broadcastReceiver, new IntentFilter(ActivityMain.BroadCastListenr));
}
خوب الان باید از یه جایی میزنی تو گوشش بشنوه باید تعریفش کنی. فقط آروم بزنی ها :قهقهه: تو کلاس ActivityMain من اینو نوشتم
public static final String BroadCastListenr = "SalamBroadcastService";
private static Intent broadcastIntent = new Intent(BroadCastListenr);
حالا باید بگی وقتی اتفاقی افتاد خبر بده :
broadcastIntent.putExtra("data", "Khabar Khabaaaaar !!");
sendBroadcast(broadcastIntent, null);
خوب تموم شد :چشمک:
raha_jon
جمعه 28 فروردین 1394, 18:51 عصر
ممنون
تقریبا مبتدی هستم بخاطر اون معذرت کلاسم از BroadcastReceiver مشتق گرفته شده و چون چندساعتی هست وارد این BroadcastReceiver شده ام اصلا نمی دونم چی به چیه فقط اون حساسیتی که ایجاد کرده ام این BroadcastReceiver خبر میده می خوام با زدن دکمه رو گوشی بگم بابا خبرتو دونستم.
اما بازم ..... نشد :گریه:
NeoFighT
جمعه 28 فروردین 1394, 20:14 عصر
BroadcastReceiver یک قسمتی از اندروید هست که اکثر اتفاقاتی که توی اندروید می افته (مثل کم و زیاد کردن صدا،روشن کردن گوشی،و هر چیزه دیگه ای) یک Broadcast ارسال میشه و شما با استفاده از BroadcastReceiver میتونید اون Broadcast رو دریافت کنید.
مثلا اینجا ما یه BroadcastReceiver میسازیم که وقتی Broadcast برای دکمه کم و زیاد گوشی پخش شد اون رو دریافت کنیم و یک log رو نشون بدیم.
این سورس رو باز کن متوجه میشی.
http://s4.picofile.com/file/8183182268/testBroadcast.rar.html
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.