Android 在传入的SMS上触发对MySQL的发布

Android 在传入的SMS上触发对MySQL的发布,android,mysql,database,post,Android,Mysql,Database,Post,我正在开发一个Android应用程序,当收到传入消息时,我需要发布到PHP表单或插入到MySQL数据库中。你们中的一些人可能会犹豫是否回应,但让我向你们保证,这不是一个恶意应用 我在下面发布的代码是我用来阻止传入消息的代码,除了一个号码。有没有人能帮我想出一个方法,在短信被阻止时触发对我服务器的帖子 import android.content.BroadcastReceiver; import android.content.Context; import android.content.In

我正在开发一个Android应用程序,当收到传入消息时,我需要发布到PHP表单或插入到MySQL数据库中。你们中的一些人可能会犹豫是否回应,但让我向你们保证,这不是一个恶意应用

我在下面发布的代码是我用来阻止传入消息的代码,除了一个号码。有没有人能帮我想出一个方法,在短信被阻止时触发对我服务器的帖子

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 {

public static int MSG_TPE=0;
private String getAddress;
public void onReceive(Context context, Intent intent) { 
    String MSG_TYPE=intent.getAction();
        if(MSG_TYPE.equals("android.provider.Telephony.SMS_RECEIVED")) {
            Toast received = Toast.makeText(context,"SMS Received: "+MSG_TYPE , Toast.LENGTH_LONG);
            received.show();

                Bundle bundle = intent.getExtras();
                Object messages[] = (Object[]) bundle.get("pdus");
                SmsMessage smsMessage[] = new SmsMessage[messages.length];
                for (int n = 0; n < messages.length; n++) {
                    smsMessage[n] = SmsMessage.createFromPdu((byte[]) messages[n]);
                }

                    getAddress = smsMessage[0].getOriginatingAddress();
                    if(getAddress.equals("APPROVEDPHONENUMBER")) {
                        Toast approved = Toast.makeText(context,"Approved SMS from: " + smsMessage[0].getOriginatingAddress(), Toast.LENGTH_LONG);
                        approved.show();
                            // Message is approved and let through
                    } else {
                        Toast blocked = Toast.makeText(context,"Blocked SMS from: " + smsMessage[0].getOriginatingAddress(), Toast.LENGTH_LONG);
                        blocked.show();
                            // Post to MySQL database
                            abortBroadcast();
                    }
                        for(int i=0;i<8;i++) {
                            System.out.println("Blocking SMS");
                        }

        }

}

}
导入android.content.BroadcastReceiver;
导入android.content.Context;
导入android.content.Intent;
导入android.os.Bundle;
导入android.telephony.sms消息;
导入android.widget.Toast;
公共类SmsReceiver扩展了BroadcastReceiver{
公共静态int MSG_TPE=0;
私有字符串地址;
public void onReceive(上下文、意图){
字符串MSG_TYPE=intent.getAction();
if(MSG_TYPE.equals(“android.provider.Telephony.SMS_RECEIVED”)){
Toast received=Toast.makeText(上下文,“SMS received:+MSG\u TYPE,Toast.LENGTH\u LONG);
received.show();
Bundle=intent.getExtras();
对象消息[]=(对象[])bundle.get(“PDU”);
SmsMessage SmsMessage[]=新SmsMessage[messages.length];
对于(int n=0;n对于(int i=0;i我不确定是否理解了您的问题..所以基本上您希望在发生事件时将一些数据发布到web服务器

我看到您已经有了触发此事件的代码,所以您只询问如何发布数据?以下是一个示例:

HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost("www.test.com");  
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();  
nameValuePairs.add(new BasicNameValuePair("name1", "value1"));  
nameValuePairs.add(new BasicNameValuePair("name2", "value2")); 
nameValuePairs.add(new BasicNameValuePair("name3", "value3"));   
// etc...
httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 
HttpResponse response = httpClient.execute(httpPost);
HttpClient-HttpClient=newdefaulthttpclient();
HttpPost HttpPost=新的HttpPost(“www.test.com”);
List nameValuePairs=新的ArrayList();
添加(新的BasicNameValuePair(“name1”、“value1”);
添加(新的BasicNameValuePair(“name2”、“value2”);
添加(新的BasicNameValuePair(“name3”、“value3”);
//等等。。。
setEntity(新的UrlEncodedFormEntity(nameValuePairs));
HttpResponse response=httpClient.execute(httpPost);

这似乎是可行的。当我将我的网站URL放在您的示例[Ex:new HttpPost();]中时,斜杠被误认为是注释。是否有办法修改我的URL以避免出现这种情况,或者我必须使用IPaddress?哇。在我的匆忙中,我一定忽略了这一点。谢谢。