2013-05-19 62 views
-2

的這是我發送短信如何發送免費短信在android..i想知道的WhatsApp,微信..this型messeging應用程序是如何提供給我們發送messege免費

import android.app.Activity; 
import android.app.PendingIntent; 
import android.content.BroadcastReceiver; 
import android.content.Context; 
import android.content.Intent; 
import android.content.IntentFilter; 
import android.os.Bundle; 
import android.telephony.SmsManager; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.Toast; 
public class SMSTest extends Activity 
{ 
Button btnSendSMS; 
EditText txtPhoneNo; 
EditText txtMessage; 

代碼調用時活動首先創建。

@Override 
public void onCreate(Bundle savedInstanceState) 
{ 
super.onCreate(savedInstanceState); 
setContentView(R.layout.sendingsms); 
btnSendSMS = (Button) findViewById(R.id.btnSendSMS); 
txtPhoneNo = (EditText) findViewById(R.id.txtPhoneNo); 
txtMessage = (EditText) findViewById(R.id.txtMessage); 

btnSendSMS.setOnClickListener(new View.OnClickListener() 
{ 
public void onClick(View v) 
{ 
String phoneNo = txtPhoneNo.getText().toString(); 
String message = txtMessage.getText().toString(); 
if (phoneNo.length()>0 && message.length()>0) 
sendSMS(phoneNo, message); 
else 
Toast.makeText(getBaseContext(), 
"Please enter both phone number and message.", 
Toast.LENGTH_SHORT).show(); 
} 
}); 
} 

發送一個SMS消息發送到另一裝置

private void sendSMS(String phoneNumber, String message) 
{ 

String SENT = "SMS_SENT"; 
String DELIVERED = "SMS_DELIVERED"; 

PendingIntent sentPI = PendingIntent.getBroadcast(this, 0, 
new Intent(SENT), 0); 

PendingIntent deliveredPI = PendingIntent.getBroadcast(this, 0, 
new Intent(DELIVERED), 0); 

//—when the SMS has been sent— 
registerReceiver(new BroadcastReceiver(){ 
@Override 
public void onReceive(Context arg0, Intent arg1) { 
switch (getResultCode()) 
{ 
case Activity.RESULT_OK: 
Toast.makeText(getBaseContext(), "SMS sent", 
Toast.LENGTH_SHORT).show(); 
break; 
case SmsManager.RESULT_ERROR_GENERIC_FAILURE: 
Toast.makeText(getBaseContext(), "Generic failure", 
Toast.LENGTH_SHORT).show(); 
break; 
case SmsManager.RESULT_ERROR_NO_SERVICE: 
Toast.makeText(getBaseContext(), "No service", 
Toast.LENGTH_SHORT).show(); 
break; 
case SmsManager.RESULT_ERROR_NULL_PDU: 
Toast.makeText(getBaseContext(), "Null PDU", 
Toast.LENGTH_SHORT).show(); 
break; 
case SmsManager.RESULT_ERROR_RADIO_OFF: 
Toast.makeText(getBaseContext(), "Radio off", 
Toast.LENGTH_SHORT).show(); 
break; 
} 
} 
}, new IntentFilter(SENT)); 

//—when the SMS has been delivered— 
registerReceiver(new BroadcastReceiver(){ 
@Override 
public void onReceive(Context arg0, Intent arg1) { 
switch (getResultCode()) 
{ 
case Activity.RESULT_OK: 
Toast.makeText(getBaseContext(), "SMS delivered", 
Toast.LENGTH_SHORT).show(); 
break; 
case Activity.RESULT_CANCELED: 
Toast.makeText(getBaseContext(), "SMS not delivered", 
Toast.LENGTH_SHORT).show(); 
break; 
} 
} 
}, new IntentFilter(DELIVERED)); 

SmsManager sms = SmsManager.getDefault(); 
sms.sendTextMessage(phoneNumber, null, message, sentPI, deliveredPI); 
} 
} 

此代碼是接收SMS

import android.content.BroadcastReceiver; 
import android.content.Context; 
import android.content.Intent; 
import android.os.Bundle; 
import android.telephony.SmsMessage; 
import android.widget.Toast; 

public class SmsReceiver extends BroadcastReceiver 
{ 
@Override 
public void onReceive(Context context, Intent intent) 
{ 
//—get the SMS message passed in— 
Bundle bundle = intent.getExtras(); 
SmsMessage[] msgs = null; 
String str = ""; 
if (bundle != null) 
{ 
//—retrieve the SMS message received— 
Object[] pdus = (Object[]) bundle.get("pdus"); 
msgs = new SmsMessage[pdus.length]; 
for (int i=0; i<msgs.length; i++){ 
msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]); 
str += "SMS from " + msgs[i].getOriginatingAddress(); 
str += " :"; 
str += msgs[i].getMessageBody().toString(); 
str += "\n"; 
} 
//—display the new SMS message— 
Toast.makeText(context, str, Toast.LENGTH_SHORT).show(); 
} 
} 
} 

而這是XML文件..

<?xml version="1.0" encoding="utf-8"?> 
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    > 
    <TextView 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="Enter the phone number of recipient" 
    /> 
    <EditText 
    android:id="@+id/txtPhoneNo" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    /> 
    <TextView 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="Message" 
    /> 
    <EditText 
    android:id="@+id/txtMessage" 
    android:layout_width="fill_parent" 
    android:layout_height="150px" 
    android:gravity="top" 
    /> 
    <Button 
    android:id="@+id/btnSendSMS" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="Send SMS" 
    /> 
    </LinearLayout> 

非常基本的應用程序..我需要知道ow有可能通過編碼發送短信...如果不是那麼whatsApp給我們許可發送短信免費..他們支付?? ..或者我們可以使用一些API ...

回答

4

WhatsApp不會在應用程序中使用基於操作員的SMS,只需WhatsApp有自己的服務器,打開應用程序,連接到服務器,當您的朋友也登錄時,雙方你連接到服務器,所以在這個時候有你們倆之間的開放通道,您可以使用它來聊天和發送文件等

簡單,是不是:)

1

WhatsApp doesn'將短信發送到其他設備。消息通過IM發送 - http://en.wikipedia.org/wiki/Extensible_Messaging_and_Presence_Protocol

+0

如何使用IM發送免費短信 –

+0

您不會發送免費短信。請參閱Tarreq的答案,瞭解WhatsApp的服務器如何用於消息發送。基本上,您將通過Internet將您的數據發送到將消息轉發給收件人的WhatsApp。根本沒有SMS交易 – Boots

相關問題