2015-09-04 35 views
1

我想知道如何使PHP应用程序从USB电脑连接到我的电脑的Android手机发送短信。 我发现一些教程,但他们没有工作。 有没有办法做到这一点,没有任何API和免费?短信网关使用PHP和安卓手机

+0

我不知道它是否可能 – Jerry

+0

你认为这是不可能的? –

+0

您不需要USB就可以做到这一点,它只需几个小时的工作时间即可使用运行在Android上的服务器以及侦听来自外部请求的端口。 设备必须使用静态IP连接到Wifi。 如果你有一个静态的公共IP,你也可以使它工作。 看看我的答案,它可能会帮助你。 –

回答

2

尝试用于Android的NanoHttpd。 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:从PHP服务器与参数NanoHttpd服务器 推HTTP请求。

步骤3: 的NanoHttpd服务器将接收在函数“服务”的请求:

@Override 
public synchronized Response serve(IHTTPSession session) { 

} 

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

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

我也做了类似的事情对我的工作(我已经实现了它作为一款Android服务),它就像一个魅力。 它很容易遵循,'NanoHttpd'服务器非常稳定。

+0

谢谢你的回答,但我是begginer,并且在第1步后我什么都不懂。我设置了nanohttpd服务器,以及如何处理这个代码 –

+0

编辑我的答案,看一看。 –