Сохранить входящее текстовое сообщение в файл во внешнем хранилище в Android
Я пытаюсь сохранить каждое входящее SMS в текстовом файле во внешней памяти со следующим кодом. Для маленьких сообщений или я работаю, но когда сообщение становится длинным и имеет много пробелов, этот код просто сохраняет последние несколько строк в текстовом файле. Я не могу понять проблему. Есть мысли?
public void onReceive(Context context, Intent intent) {
final Bundle bundle = intent.getExtras();
try {
if (bundle != null) {
final Object[] pdusObj = (Object[]) bundle.get("pdus");
for (int i = 0; i < pdusObj.length; i++) {
SmsMessage currentMessage = SmsMessage.createFromPdu((byte[]) pdusObj[i]);
String phoneNumber = currentMessage.getDisplayOriginatingAddress();
String senderNum = phoneNumber;
String message = currentMessage.getDisplayMessageBody().toString();
//file name will be current time for uniquess
Calendar c = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("dd_MMMM_yyyy__HH_mm_ss__a");
String fileName = sdf.format(c.getTime());
File myFile = new File("/sdcard//SaveSMS/"+getName(senderNum,context)+"//"+ fileName + ".txt");
myFile.createNewFile();
FileOutputStream fOut = new FileOutputStream(myFile);
OutputStreamWriter myOutWriter = new OutputStreamWriter(fOut);
// Append Body SMS to Stream
myOutWriter.append(message);
myOutWriter.close();
fOut.close();
Toast.makeText(context,"This SMS will save in SaveSMS\\"+senderNum, 1).show();
}
}
} catch (Exception e) {
Log.e("SmsReceiver", "Exception smsReceiver" +e);
}
}
Пример ошибки: если кто-то текст
1 1 1 2 3
4
5 6 6 7 8 9
7 6 5
этот код сохранит только
6 5
1 ответ
Это перезаписывает данные в существующем файле? попробуйте заменить
new FileOutputStream(myFile);
с
new FileOutputStream(myFile, true);