我可以自动发送短信(如果没有用户需要批准) [英] Can i automatically send SMS (Without the user need to approve)
问题描述
我是比较新的到Android。 我试着从Android应用程序发送短信。 当使用短信意向的短信窗口打开,用户需要批准的短信并发送。
I'm rather new to Android. Im trying to send SMS from Android application. When using the SMS Intent the SMS window opens and the user needs to approve the SMS and send it.
有没有一种方法来自动发送短信没有确认它的用户?
Is there a way to automatically send the SMS without the user confirming it?
谢谢, 利奥尔
推荐答案
您可以使用此方法发送短信。如果SMS大于160字符然后sendMultipartTextMessage被使用。
You can use this method to send an sms. If the sms is greater than 160 character then sendMultipartTextMessage is used.
private void sendSms(String phonenumber,String message, boolean isBinary)
{
SmsManager manager = SmsManager.getDefault();
PendingIntent piSend = PendingIntent.getBroadcast(this, 0, new Intent(SMS_SENT), 0);
PendingIntent piDelivered = PendingIntent.getBroadcast(this, 0, new Intent(SMS_DELIVERED), 0);
if(isBinary)
{
byte[] data = new byte[message.length()];
for(int index=0; index<message.length() && index < MAX_SMS_MESSAGE_LENGTH; ++index)
{
data[index] = (byte)message.charAt(index);
}
manager.sendDataMessage(phonenumber, null, (short) SMS_PORT, data,piSend, piDelivered);
}
else
{
int length = message.length();
if(length > MAX_SMS_MESSAGE_LENGTH)
{
ArrayList<String> messagelist = manager.divideMessage(message);
manager.sendMultipartTextMessage(phonenumber, null, messagelist, null, null);
}
else
{
manager.sendTextMessage(phonenumber, null, message, piSend, piDelivered);
}
}
}
更新
piSend和piDelivered正在申请意向,他们可以触发广播时,该方法完成发送短信
Update
piSend and piDelivered are Pending Intent They can trigger a broadcast when the method finish sending an SMS
下面是一个示例code广播接收器
Here is sample code for broadcast receiver
private BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String message = null;
switch (getResultCode()) {
case Activity.RESULT_OK:
message = "Message sent!";
break;
case SmsManager.RESULT_ERROR_GENERIC_FAILURE:
message = "Error. Message not sent.";
break;
case SmsManager.RESULT_ERROR_NO_SERVICE:
message = "Error: No service.";
break;
case SmsManager.RESULT_ERROR_NULL_PDU:
message = "Error: Null PDU.";
break;
case SmsManager.RESULT_ERROR_RADIO_OFF:
message = "Error: Radio off.";
break;
}
AppMsg.makeText(SendMessagesWindow.this, message,
AppMsg.STYLE_CONFIRM).setLayoutGravity(Gravity.BOTTOM)
.show();
}
};
和您可以在活动使用以下行注册它
and you can register it using below line in your Activity
registerReceiver(receiver, new IntentFilter(SMS_SENT)); // SMS_SENT is a constant
另外不要忘记注销广播的onDestroy
Also don't forget to unregister broadcast in onDestroy
@Override
protected void onDestroy() {
unregisterReceiver(receiver);
super.onDestroy();
}
这篇关于我可以自动发送短信(如果没有用户需要批准)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!