我想知道如何让php应用程序从附带usb的android手机发送短信到我的电脑。 我找到了一些教程,但他们没有工作。 有什么办法可以在没有api和免费的情况下做到这一点吗?
答案 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;服务器非常稳定。