我正在尝试在手机响铃时通过蓝牙耳机播放声音(即代表人名的小 wav 文件 - 不是自动生成的)。本质上它将替换蓝牙设备的默认铃声并将其替换为呼叫者的姓名!......好吧,无论如何......它不起作用。
我已经能够在活动中直接在耳机上播放 wav 文件,但是当移动到广播接收器的 onReceive 功能时,它无法在手机响铃时通过耳机播放相同的声音......
我觉得我一定是错过了什么。我可以做些什么来修改此代码吗?
提前致谢
public void onReceive(Context context, Intent intent) {
mContext = context;
String state = intent.getStringExtra(TelephonyManager.EXTRA_STATE);
if(state.equalsIgnoreCase(TelephonyManager.EXTRA_STATE_RINGING))
{
System.out.println("Its Ringing");
AudioManager am = (AudioManager) mContext.getSystemService(mContext.AUDIO_SERVICE);
am.setBluetoothScoOn(true);
am.startBluetoothSco();
am.setMode(AudioManager.MODE_NORMAL);
try{
AssetFileDescriptor afd = mContext.getAssets().openFd("my.wav");
MediaPlayer player = new MediaPlayer();
player.setAudioStreamType(AudioManager.STREAM_VOICE_CALL);
player.setDataSource(afd.getFileDescriptor(),afd.getStartOffset(),afd.getLength());
player.setOnPreparedListener(new OnPreparedListener(){
public void onPrepared(MediaPlayer mp) {
mp.start();
}
});
player.setAudioStreamType(AudioManager.STREAM_VOICE_CALL);
player.prepareAsync();
}catch(IOException ioe){
System.err.println(ioe.getLocalizedMessage());
}}}