編輯:關於android開發
Android 系統通常支持多種音頻設備,常見的有手機內置揚聲器,插孔式有線耳機,藍牙 A2DP()設備。
使用不同的硬件設備可能會影響您應用程序的設計方式,您可以通過 來查詢當前正在播放音頻的硬件設備信息,是內置揚聲器,還是有線耳機,或者是藍牙設備。
示例代碼如下:
if (isBluetoothA2dpOn()) { // Adjust output for Bluetooth. 藍牙設備 } else if (isSpeakerphoneOn()) { // Adjust output for Speakerphone. 內置揚聲器(免提) } else if (isWiredHeadsetOn()) { // Adjust output for headsets 有線耳機 } else { // If audio plays and noone can hear it, is it still playing? 未知設備 }
當耳機線脫落,藍牙設備斷開,音頻輸出流會自動切換到內置揚聲器。如果此時您正在大聲播放音樂,這可能不是您期待的結果。
不過也不用擔心,當出現硬件設備切換的時候,Android 會發送系統廣播 ,您的應用程序中應該注冊一個 來監聽這個消息,當出現這種情況的時候,如果正在聽音樂,較好的設計方案是暫停當前音樂的播放,如果正在玩游戲,那麼盡量降低游戲的音量是個不錯的解決方法。
示例代碼如下:
private class NoisyAudioStreamReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if (AudioManager.ACTION_AUDIO_BECOMING_NOISY.equals(intent.getAction())) { // Pause the playback } } } private IntentFilter intentFilter = new IntentFilter(AudioManager.ACTION_AUDIO_BECOMING_NOISY); private void startPlayback() { registerReceiver(myNoisyAudioStreamReceiver(), intentFilter); } private void stopPlayback() { unregisterReceiver(myNoisyAudioStreamReceiver); }
參考文摘:
轉自:http://blog.zhourunsheng.com/2011/12/android-%e9%9f%b3%e4%b9%90%e7%bc%96%e7%a8%8b%e4%b8%93%e9%a2%98%e4%b9%8b%e7%ae%a1%e7%90%86%e9%9f%b3%e9%a2%91%e7%a1%ac%e4%bb%b6/ | 潤物無聲
自定義ZXing二維碼掃描界面並解決取景框拉伸等問題,zxing拉伸先看效果 掃描內容是下面這張,二維碼是用zxing庫生成的 由於改了好
小波Linux安卓Sqlite數據庫實現用戶登錄注冊,通俗易懂!,安卓sqlite看了很多別人寫的安卓SQlite數據的操作代碼,都是浮雲,瞎弄!一點也不通俗易懂,我覺得
將學校擺在桌面上-實時更新校內數據的Android桌面部件,校內android項目地址: https://github.com/hwding/AeolosXDUWidge
安卓應用反編譯(二)-APK包反編譯淺析 第二章 APK包反編譯 被編譯器處理過的代碼和資源已經打包成了APK,有的甚至被轉化成了二進制文件。但是我們也有一些方法,把這些