我使用短信管理器发送短信.对于单一SIM卡,它可以完美地发送短信.但在双卡双待短信不会发送.是否可以从双卡发送短信,如果可能的话,我该如何选择哪个SIM卡发送短信.任何人都知道帮我解决这个问题.
单SIM卡工作代码
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(ph_number, null, body, null,null);
Run Code Online (Sandbox Code Playgroud) 我有一部带2张SIM卡的Android手机,我想使用Sim1或Sim2发送短信.默认情况下,该消息是从sim1发送的.但我想从sim2发送短信.是否可以设置使用Sim1或Sim2发送短信?
如果有一个使用Sim1或Sim2发送短信的设置选项会很棒.这对于双卡Android手机很有用.我创建了短信应用程序android我已经能够顺利地短信应用程序,但默认短信由SIM发送1.但我想通过设置发送短信由sim1或sim2发送短信?
我来自iphone开发,你不能在后台发送短信而不要求用户确认发送.可以在android的后台发送短信,这样就不需要用户干预吗?
我目前正在开发一个应用程序,只有当它是应用程序预期的SMS时才需要处理SMS(与Whatsapp在注册时的行为相同).
我想中止SMS Intent,因为它不会出现在SMS框中.
我的问题是:我知道谷歌改变了很多关于KitKat中的短信行为,现在,即使我的短信被我的应用程序很好地解析,短信也出现在SMSBox中,即使我this.abortBroadcast();在我的短信广播接收器中呼叫.那么有没有办法避免这些短信出现在短信框中而无需开发完整的短信应用程序?
有关信息,此广播接收器的清单文件中的优先级尚未达到1000(我也尝试使用MAX Integer).
最近开始学习kotlin编程语言的android系统编程。在编写一个从应用程序本身发送短信的简单应用程序时,我遇到了 SmsManager.getDefault() 现在已弃用的问题,因此无法按照视频课程中的指示发送短信。问题 - 现在如何从应用程序本身发送短信?我看了官方文档,但无法理解解决方法。
package com.example.mysendsms
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.telephony.SmsManager
import com.example.mysendsms.databinding.ActivityMainBinding
class MainActivity : AppCompatActivity() {
lateinit var binding: ActivityMainBinding
val sms = SmsManager.getDefault()
override fun onCreate(savedInstanceState: Bundle?) {
binding = ActivityMainBinding.inflate(layoutInflater)
super.onCreate(savedInstanceState)
setContentView(binding.root)
binding.send.setOnClickListener {
val textMsg = binding.message.toString().trim()
val numberMsg = binding.number.toString().trim()
sendSMS(textMsg,numberMsg)
}
}
private fun sendSMS(text: String, number: String) {
sms.sendTextMessage(number,null,text,null,null)
}
}
}
Run Code Online (Sandbox Code Playgroud) 我正在制作一个短信计划应用程序,它只需要用户的时间,短信和号码,并在给定时间发送短信.我在用PendingIntent.这是我的示例代码.
当用户创建计划时,它只是调用此方法.
private void SendMessages()
{
Intent intent = new Intent(this, SMSBroadcastReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(
this.getApplicationContext(), 234324243, intent, 0);
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, Timemilli, pendingIntent);
}
Run Code Online (Sandbox Code Playgroud)
这是'SMSBroadcastReceiver.java'文件
public class SMSBroadcastReceiver extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
Toast.makeText(context, "SMS Sent !!!!.", Toast.LENGTH_LONG)
.show();
// //Sms Sending
try
{
SmsManager smsManager = SmsManager.getDefault();
for (int i = 0; i < SMSScheduleContactsActivity.SelectedContacts.length; i++)
{
smsManager.sendTextMessage(
SMSScheduleContactsActivity.SelectedContacts[i], null,
AddNewSmsSchedule.Message, null, null);
}
Log.d("testllllllllllllllll", "Message …Run Code Online (Sandbox Code Playgroud) 我想从我的Android设备发送短信并从mydevice(已发送的消息)中删除它.
SMS保存在设备(4.4.4)中,但不会使用我的代码删除SMS.删除行后影响= 0(零).
我的设备vesrion是4.4.4.
在其他设备中,不保存SMS.为什么SMS会在Android 4.4.4中保存?
我不想保存我发送的短信或失败的短信(没有发送).
请帮我.
我的权限
<uses-permission android:name="android.permission.SEND_SMS"/>
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.WRITE_SMS" />
Run Code Online (Sandbox Code Playgroud)
我的代码是发送短信
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(number, null, msg, null, null);
Run Code Online (Sandbox Code Playgroud)
我从处理程序调用方法deleteSMS()与postselay为5秒
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
String message = CastApplication.mPref.getString(context.getResources().getString(R.string.pref_message_to_friend), "");
deleteSMS(context, message, number);
if (MyCastFragment.getInstance() != null) {
MyCastFragment.getInstance().updateView();
}
progressDialog.dismiss();
context.finish();
}
}, 5000);
Run Code Online (Sandbox Code Playgroud)
删除短信
public void deleteSMS(Context ctx, String message, String number) {
try {
Uri uriSms = Uri.parse("content://sms");
Cursor c = …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Google的SMS检索器API进行自动SMS验证,但是其中存在问题。以前,我使用读取发件人编号getOriginatingAddress(),如果它是有效的发件人编号,则读取OTP,否则不读取消息。作为,转发的OTP会干扰用户的隐私。
我有以下情况。
我的应用程序正在自动获取转发的OTP消息。
有什么办法可以获取发件人号码?
我正在尝试从我的申请中发送紧急短信.我必须确保SMS已成功发送.
在Android系统启动后以及在进行检查之后发送SMS.
所以我有一个处理BOOT_COMPLETED intent-filter的服务类.这个类进行检查,如果有的话,那么它会尝试通过"扩展服务"的另一个类发送一条SMS消息
在确保成功发送短信之后,两个服务(处理引导调用的服务和发送短信的服务)必须退出.
问题1:如何使用短信调用我的短信发送功能而不会使应用程序无响应消息?目前我正在使用它(我不知道它是否是正确的方法,虽然它有效):
Timer mTimer = new Timer();
//wait a small timeout prior to sending the message.
mTimer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
this.cancel(); //I don't want to run the timer more than once
sms_sender sms = new sms_sender();
sms.sendSMS(phoneNumber, messageText);
}
}, 30000, 30000); //run sendSMS() after 30 seconds
Run Code Online (Sandbox Code Playgroud)
问题2:如何实现sendSMS功能,以便在意识到上次尝试失败后每30秒重试一次?
问题3:在我意识到SMS已成功发送后,如何停止这两项服务?
这是我的代码不起作用:
public class sms_sender extends Service {
@Override
public IBinder onBind(Intent arg0) {
// TODO Auto-generated method stub
return null; …Run Code Online (Sandbox Code Playgroud) 我在Android Studio工作,我需要一些关于模拟器的帮助.
我想启动两个模拟器,以便我可以同时使用它们来测试我的应用程序.现在的问题是,当第二个模拟器加载一切只是崩溃.
我怎么解决这个问题?
请帮忙!