send mms with attachment

This commit is contained in:
jens 2022-11-13 17:49:02 +01:00
parent 98df050f42
commit 48da91cb40
2 changed files with 35 additions and 19 deletions

View File

@ -10,6 +10,7 @@ import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice; import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothProfile; import android.bluetooth.BluetoothProfile;
import android.content.ActivityNotFoundException; import android.content.ActivityNotFoundException;
import android.content.ContentResolver;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.media.AudioManager; import android.media.AudioManager;
@ -28,6 +29,7 @@ import android.telecom.TelecomManager;
import android.telephony.SmsManager; import android.telephony.SmsManager;
import android.telephony.SubscriptionManager; import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager; import android.telephony.TelephonyManager;
import android.text.TextUtils;
import android.util.Log; import android.util.Log;
import android.view.KeyEvent; import android.view.KeyEvent;
import android.widget.Toast; import android.widget.Toast;
@ -51,6 +53,7 @@ import org.apache.http.impl.client.DefaultHttpClient;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.File; import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.io.InputStreamReader; import java.io.InputStreamReader;
@ -1220,7 +1223,7 @@ public class Actions
public static void sendTextMessage(Context context, String[] parametersArray) public static void sendTextMessage(Context context, String[] parametersArray)
{ {
String phoneNumber, message, messageType = "sms", filePath = null; String phoneNumber, message, messageType = ActivityManageActionSendTextMessage.messageTypeSms, filePath = null;
phoneNumber = parametersArray[0]; phoneNumber = parametersArray[0];
message = parametersArray[1]; message = parametersArray[1];
@ -1261,26 +1264,18 @@ public class Actions
} }
} }
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
private static void sendMmsMessage(String phoneNumber, String textToSend, String fileToBeAttached) private static void sendMmsMessage(String phoneNumber, String textToSend, String fileToBeAttached)
{ {
try try
{ {
PendingIntent pi = PendingIntent.getActivity(context, 0, new Intent(context, Actions.class), 0); Miscellaneous.logEvent("i", "sendMmsMessage()", "Sending MMS message...", 2);
SmsManager sms = SmsManager.getDefault(); Uri contentUri = Uri.fromFile(new File(fileToBeAttached));
sms.sendMultimediaMessage(phoneNumber, null, textToSend, pi, null); SmsManager.getDefault().sendMultimediaMessage(context, contentUri, phoneNumber, null, null);
if(!StringUtils.isEmpty(fileToBeAttached))
{
Uri uri = Uri.parse("file://" + fileToBeAttached);
i.putExtra(Intent.EXTRA_STREAM, "file:/" + uri);
i.setType("image/png");
}
startActivity(i);
} }
catch (Exception e) catch (Exception e)
{ {
Miscellaneous.logEvent("e", Miscellaneous.getAnyContext().getString(R.string.sendTextMessage), "Error in sendTextMessage: " + Log.getStackTraceString(e), 3); Miscellaneous.logEvent("e", "sendMmsMessage()", "Error in sendMmsMessage(): " + Log.getStackTraceString(e), 3);
} }
} }

View File

@ -24,6 +24,8 @@ import androidx.annotation.NonNull;
import com.jens.automation2.Action.Action_Enum; import com.jens.automation2.Action.Action_Enum;
import org.apache.commons.lang3.StringUtils;
public class ActivityManageActionSendTextMessage extends Activity public class ActivityManageActionSendTextMessage extends Activity
{ {
@ -36,6 +38,9 @@ public class ActivityManageActionSendTextMessage extends Activity
protected final static int requestCodeGetContact = 3235; protected final static int requestCodeGetContact = 3235;
protected final static int requestCodeGetMMSattachment = 3236; protected final static int requestCodeGetMMSattachment = 3236;
public static final String messageTypeSms = "sms";
public static final String messageTypeMms = "mms";
public static boolean edit = false; public static boolean edit = false;
public static Action resultingAction = null; public static Action resultingAction = null;
@ -60,15 +65,31 @@ public class ActivityManageActionSendTextMessage extends Activity
public void onClick(View v) public void onClick(View v)
{ {
if(etSendTextMessage.getText().toString().length() > 0 && etPhoneNumber.getText().toString().length() > 0) if(etSendTextMessage.getText().toString().length() > 0 && etPhoneNumber.getText().toString().length() > 0)
{
if(rbMessageTypeMms.isChecked() && StringUtils.isEmpty(tvSendMmsFileAttachment.getText().toString()))
Toast.makeText(getBaseContext(), getResources().getString(R.string.chooseFile), Toast.LENGTH_LONG).show();
else
{ {
if (resultingAction == null) if (resultingAction == null)
{ {
resultingAction = new Action(); resultingAction = new Action();
resultingAction.setAction(Action_Enum.sendTextMessage); resultingAction.setAction(Action_Enum.sendTextMessage);
resultingAction.setParameter2(etPhoneNumber.getText().toString() + Actions.smsSeparator + etSendTextMessage.getText().toString()); String messageType = null;
String path = "";
if(rbMessageTypeSms.isChecked())
messageType = messageTypeSms;
else
{
messageType = messageTypeMms;
path = Actions.smsSeparator + tvSendMmsFileAttachment.getText().toString();
}
resultingAction.setParameter2(etPhoneNumber.getText().toString() + Actions.smsSeparator + etSendTextMessage.getText().toString() + Actions.smsSeparator + messageType + path);
} }
backToRuleManager(); backToRuleManager();
} }
}
else else
Toast.makeText(getBaseContext(), getResources().getString(R.string.enterPhoneNumberAndText), Toast.LENGTH_LONG).show(); Toast.makeText(getBaseContext(), getResources().getString(R.string.enterPhoneNumberAndText), Toast.LENGTH_LONG).show();
} }