電話が鳴っているときにBluetoothヘッドセットで再生するサウンド(つまり、人の名前を表す小さなwavファイル-自動生成されない)を取得しようとしています。基本的に、Bluetoothデバイスのデフォルトのリングを置き換え、発信者の名前に置き換えます!...まあ、とにかく...それは機能していません。
アクティビティ内でヘッドセットで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());
}}}