انجمن سایت کلیدستان



مشکل با audio managerزمان کنونی: ۱۳۹۵/۰۹/۱۶، ۱۰:۱۲ ق.ظ
کاربران در حال بازدید این موضوع: 1 مهمان
نویسنده: Aryana
آخرین ارسال: Aryana
پاسخ 1
بازدید 332

رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
مشکل با audio manager

مشکل با audio manager

#1
سلام دوستان
من کد زیر رو نوشتم که از طریق اون میتونم موقع برقراری یه سری تماس خاص گوشی رو به حالت سایلنت ببرم و بعد از قطع تماس به حالت قبلی برگرده
کد پی‌اچ‌پی:
public class PhoneCallReceiver extends BroadcastReceiver {

 
AudioManager am;

public 
void onReceive(Context contextIntent 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
از این کد هم استفاده کردم ولی کار نکرد همین کد توی کلاسی که از broadcast recever اکستند نشده باشه کار میکنه
کد پی‌اچ‌پی:
switch (temp.getRingerMode()) {
   case 
am.RINGER_MODE_SILENT:
   break;
   case 
am.RINGER_MODE_VIBRATE:
   break;
   case 
am.RINGER_MODE_NORMAL:
   break;


چیکار کنم درست بشه؟
راهی هست که بشه تو بردوکست رسیور یه تابع از یه کلاس دیگه رو صدا کرد؟
پ.ن: ببخشید خیلی طولانی و بد توضیح دادم
 
پاسخ


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان

آخرین کلیدهای غیررایگان

شما هم می توانید کلیدهای غیررایگان منتشر کنید (بیشتر بدانید)