۱۳۹۴/۰۵/۱۲, ۰۵:۲۷ ب.ظ
سلام دوستان
من کد زیر رو نوشتم که از طریق اون میتونم موقع برقراری یه سری تماس خاص گوشی رو به حالت سایلنت ببرم و بعد از قطع تماس به حالت قبلی برگرده
الان گوشی صدای زنگش هر مقداری که باشه بعد از قطع تماس به همون مقدار برمیگرده ولی یک مشکلی هست اونم اینکه اگه گوشی قبل از تماس رو حالت سایلنت (بدون ویبره) و یا ویبره باشه بعد از قطع تماس به کمترین صدای زنگ میره (نه سایلنت و نه ویبره)
من این کد رو به بالای if اضافه کردم که اگه سایلنته اصلن این شرط ها رو بررسی نکنه ولی باعث شد تا بعد از اینکه به حالت سایلنت میبره دیگه برنگردونه (رو سایلنت میمونه اگر قبلش زنگ دار بود)اصلن نمیدونم چرا باید باعث بشه تا دوخط بعدش اجرا نشهاز این کد هم استفاده کردم ولی کار نکرد همین کد توی کلاسی که از broadcast recever اکستند نشده باشه کار میکنه
چیکار کنم درست بشه؟
راهی هست که بشه تو بردوکست رسیور یه تابع از یه کلاس دیگه رو صدا کرد؟
پ.ن: ببخشید خیلی طولانی و بد توضیح دادم
من کد زیر رو نوشتم که از طریق اون میتونم موقع برقراری یه سری تماس خاص گوشی رو به حالت سایلنت ببرم و بعد از قطع تماس به حالت قبلی برگرده
کد پیاچپی:
public class PhoneCallReceiver extends BroadcastReceiver {
AudioManager am;
public void onReceive(Context context, Intent intent) {
if (phoneNumber != null) {
am.setRingerMode(0);
String state = intent.getStringExtra(TelephonyManager.EXTRA_STATE );
if (state.equals(TelephonyManager.EXTRA_STATE_IDLE) || state.equals(TelephonyManager.CALL_STATE_IDLE)) {
am.setRingerMode(2);
}
}
}
من این کد رو به بالای if اضافه کردم که اگه سایلنته اصلن این شرط ها رو بررسی نکنه ولی باعث شد تا بعد از اینکه به حالت سایلنت میبره دیگه برنگردونه (رو سایلنت میمونه اگر قبلش زنگ دار بود)اصلن نمیدونم چرا باید باعث بشه تا دوخط بعدش اجرا نشه
کد پیاچپی:
if(am.getRingerMode()!=0)
کد پیاچپی:
switch (temp.getRingerMode()) {
case am.RINGER_MODE_SILENT:
break;
case am.RINGER_MODE_VIBRATE:
break;
case am.RINGER_MODE_NORMAL:
break;
}
چیکار کنم درست بشه؟
راهی هست که بشه تو بردوکست رسیور یه تابع از یه کلاس دیگه رو صدا کرد؟
پ.ن: ببخشید خیلی طولانی و بد توضیح دادم