فعال/خاموش کردن Silent در برنامه نویسی اندروید
سلام دوستان در این سری از آموزش برنامه نویسی اندروید به آموزش فعال/خاموش کردن Silent در برنامه نویسی اندروید می پردازیم در این آموزش با استفاده از کلاس AudioManager آن را تغییر می دهیم البته این را در نظر بگیرید که در بعضی از گوشی های xiaomi به خاطر privacy کاربر فعال/خاموش کردن Silent (فعال و غیر فعال کردن آن) امکان پذیر نیست ولی در 90 درصد گوشی ها این کد کار خواهد کرد در ادامه با ما همراه باشید.
برای کار کردن با صدای گوشی لازم است با کلاس AudioManager کار کرد.
در کل سه حالت برای صدای گوشی اتفالق می افتد که عبارتند از :
- RINGER_MODE_NORMAL (حالت عادی صدای گوشی را تنظیم می کند.)
- RINGER_MODE_SILENT ( حالت Silent یا بی صدای گوشی را تنظیم می کند. )
- RINGER_MODE_VIBRATE ( حالت ویبره یا VIBRATE را تنظیم می کند. )
همانطور که گفتیم از کلاس AudioManager باید استفاده شود .
پس در رویداد دکمه یا هرجایی که می خوایید این حالت فعال شود یکی از کدهای زیر را قرار دهید .
1 2 3 4 5 6 7 8 | AudioManager am; am= (AudioManager) getBaseContext().getSystemService(Context.AUDIO_SERVICE); //For Normal mode am.setRingerMode(AudioManager.RINGER_MODE_NORMAL); //For Silent mode am.setRingerMode(AudioManager.RINGER_MODE_SILENT); //For Vibrate mode am.setRingerMode(AudioManager.RINGER_MODE_VIBRATE); |
در بالا ممکن است getBaseContext خطا داشته باشید می توانید به جای آن از this یا MainActiviy.this یا getApplicationContext استفاده کنید یا در فرگمنت از getActivity() استفاده کنید.
دقت کنید باید یکی از کدهای بالای را قرار دهید سه mode هستند که باید یکی از آنها استفاده شود .
به طور مثال مثل زیر
1 2 | AudioManager audio_mngr = (AudioManager) getBaseContext().getSystemService(Context.AUDIO_SERVICE); audio_mngr .setRingerMode(AudioManager.RINGER_MODE_SILENT); |
برای silent کردن از کد بالا استفاده کنید.
یا یک مثال دیگر مثل زیر
1 2 | AudioManager audio_mngr = (AudioManager) getBaseContext().getSystemService(Context.RINGER_MODE_NORMAL); audio_mngr .setRingerMode(AudioManager.RINGER_MODE_SILENT); |
برای تغییر حالت به حالت normal از کد بالا استفاده کنید و الی آخر.
این آموزش هم همانند آموزش های قبلی به پایان رسید در آینده سعی می شود سورس برنامه ها نیر برای شما قرار گیرد.
موفق و پیروز باشید.
سلام خسته نباشید ممنون بابت آموزش
فقط یه مشکلی دارم.من اینکارو میخواستم تو BroadcastReceiver و تو متد OnReceive انجام بدم ولی اصلا عمل نمیکنه.مشکل از چیه؟ context هم داره متد OnReceive ولی اصلا کار نمیکنه یه بار کار کرد اونم فقط از حالت ویبره کار کرد اما تو سایلنت نه.اما الان اونم کار نمیکنه.
سلام و درود
شما باید دوبار BroadcastReceiver را تنظیم کنید یکبار در خود BroadcastReceiver و یکبار در اکتیویتی .
موفق باشید.