短信网关使用PHP和Android手机

时间:2015-09-04 07:07:02

标签: php android sms

我想知道如何让php应用程序从附带usb的android手机发送短信到我的电脑。 我找到了一些教程,但他们没有工作。 有什么办法可以在没有api和免费的情况下做到这一点吗?

1 个答案:

答案 0 :(得分:2)

尝试使用NanoHttpd for Android。 NanoHttpd将作为Android上的服务器运行。

第1步:

下载NanoHTTPD.java。在您的项目中添加此类。

创建一个活动(HttpServerConnection)并添加以下代码:

public class HttpServerConnection extends Activity {

private WebServer server;
private static String TAG = "[HttpServerConnection]";
private static int default_server_port = 8005;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_start);

    // Init a server    
    server = new WebServer();
    try {
        server.start();

    } catch (IOException ioe) {
        Log.w(TAG, "The server could not start.");
        ioe.printStackTrace();
    }
    Log.w(TAG, "================Web server initialized=============>");
}


// On destroy 
@Override
public void onDestroy() {
    super.onDestroy();
    if (server != null) {
        server.stop();
        Log.w(TAG, "=================Web server stopped================>");
    }
}



// Webserver class which extends the NanoHTTPD class
private class WebServer extends NanoHTTPD {
    public WebServer() {
        super(default_server_port);
    }

    /*
     * Description : Function to run when a request message is triggered and
     * the application needs to process it to send a response.
     */
    @Override
    public synchronized Response serve(String uri, Method method,
            Map<String, String> header, Map<String, String> parameters,
            Map<String, String> files) {

        Log.w(TAG, "Request header details: " + header.toString());

        // Extract the parameters and header (mobile number and the message)

        // Send SMS using SmsManager

        return null;
    }
}

}

第2步: 使用参数将HTTP请求从php服务器推送到NanoHttpd服务器。

第3步: NanoHttpd服务器将在函数&#39; serve&#39;:

中接收请求
@Override
public synchronized Response serve(IHTTPSession session) {

}

第4步: 从“服务”中的请求中解析数据(消息和手机号码)。功能并使用 SmsManager 类发送短信。

SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(number, null, message, null,
                        null);

我为我的工作做了类似的事情(我已将其作为Android服务实现),它就像一个魅力。 它很容易遵循和NanoHttpd&#39;服务器非常稳定。