gpt4 book ai didi

java - 从服务发送短信

转载 作者:行者123 更新时间:2023-12-02 04:37:35 24 4
gpt4 key购买 nike

当比赛发生时,我尝试通过我的服务发送短信

我尝试在我的服务中做接口(interface)并在其他 Activity 中编写该函数。但我不知道如何在服务中调用我的函数,以及是否有其他解决方案。

public interface smsSender{
void sendSms(String phoneNum);
} //the interface in my service

//in other class
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
switch (requestCode)
{
case 0:
if(grantResults.length >=0 && grantResults[0]== PackageManager.PERMISSION_GRANTED)
{
sendSms("00000000");
}
}
}

@Override
public void sendSms(String phoneNum) {
int permissionCheck= ContextCompat.checkSelfPermission(this, android.Manifest.permission.SEND_SMS);
if(permissionCheck == PackageManager.PERMISSION_GRANTED)
{
final SmsManager smgr = SmsManager.getDefault();

DatabaseReference database = FirebaseDatabase.getInstance().getReference();

smgr.sendTextMessage(phoneNum,null,"String in sms",null,null);




}
else
{
ActivityCompat.requestPermissions(this, new String[]{android.Manifest.permission.SEND_SMS},0);
}

}


我如何从服务调用此函数或者有更好的方法从服务发送短信

最佳答案

首先确保 sens sms 权限在 list 文件中声明为

<uses-permission android:name="android.permission.SEND_SMS"/>

接下来使用SMSManager API发送短信

SmsManager smgr = SmsManager.getDefault();
smgr.sendTextMessage(MobileNumber,null,Message,null,null);

请找到下面的示例代码

 try{
SmsManager smgr = SmsManager.getDefault();
smgr.sendTextMessage(txtMobile.getText().toString(),null,txtMessage.getText().toString(),null,null);
Toast.makeText(MainActivity.this, "SMS Sent Successfully", Toast.LENGTH_SHORT).show();
}
catch (Exception e){
Toast.makeText(MainActivity.this, "SMS Failed to Send, Please try again", Toast.LENGTH_SHORT).show();
}

在服务中使用以下代码

 SmsManager sms = SmsManager.getDefault();
// if message length is too long messages are divided
List<String> messages = sms.divideMessage(message);
for (String msg : messages) {

PendingIntent sentIntent = PendingIntent.getBroadcast(context, 0, new Intent("SMS_SENT"), 0);
PendingIntent deliveredIntent = PendingIntent.getBroadcast(context, 0, new Intent("SMS_DELIVERED"), 0);
sms.sendTextMessage(phone, null, msg, sentIntent, deliveredIntent);

Toast.makeText(context, "SMS Sent to: " + number, Toast.LENGTH_SHORT).show();
}

关于java - 从服务发送短信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56542736/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com