Я делаю приложение для Android, которое будет воспроизводить mp3-файл, когда будет получен SMS-сообщение с «PhoneAlarm». Это последний код, который работает для меня.Воспроизведение mp3-файлов в приложении android
Обратите внимание, что: «Я не буду использовать все кодировки, которая находится в здесь» Взгляните на мой код:
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.os.Environment;
import android.telephony.gsm.SmsMessage;
import android.widget.DigitalClock;
import android.widget.Toast;
import android.media.MediaPlayer;
public class IncomingSmsCaptureApp extends BroadcastReceiver {
MediaPlayer mp1;
@Override
public void onReceive(Context context, Intent intent) {
File sdcard = Environment.getExternalStorageDirectory();
//Get the text file
File file = new File(sdcard,"Notes\file.txt");
//Read text from file
String text = new String();
try {
BufferedReader br = new BufferedReader(new FileReader(file));
String line;
while ((line = br.readLine()) != null) {
}
}
catch (IOException e) {
//You'll need to add proper error handling here
}
//---get the SMS message passed in---
Bundle bundle = intent.getExtras();
SmsMessage[] msgs = null;
String str = "";
String Message = "";
if (bundle != null)
{
//---retrieve the SMS message received---
Object[] pdus = (Object[]) bundle.get("pdus");
msgs = new SmsMessage[pdus.length];
for (int i=0; i<msgs.length; i++){
msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);
str += "SMS from " + msgs[i].getOriginatingAddress();
str += " :";
str += msgs[i].getMessageBody().toString();
str += "\n";
Message = msgs[i].getMessageBody().toString();
}
//---display the new SMS message---
Toast.makeText(context, str, Toast.LENGTH_SHORT).show();
if (Message == "PhoneAlarm") {
//Play alarm sound
mp1 = MediaPlayer.create(context, R.raw.alarm);
mp1.start();
}
}
}
}
Hi! Большое спасибо, но он все еще не воспроизводит мой звук, как только я получаю сообщение. Пожалуйста, взгляните на код сейчас. – MySoftware
Это потому, что вы сравниваете сообщение и «PhoneAlarm» с помощью оператора ==, вместо этого вызывайте Message.equals («PhoneAlarm») (который сравнивает содержимое строки, == просто сравнивает объекты, было много вопросов об этом, если вы хотите прочитать более подробную информацию об этом). Кроме того, при создании нового MediaPlayer каждый раз, когда вы воспроизводите звук, вы также должны называть метод release(). – Jave
Ты СДЕЛАЛ меня день! Большое спасибо! Он работает сейчас! :-) Но как насчет записи на SD-карту, чтобы он мог ее прочитать ??? – MySoftware