я задаюсь вопросом, как заставить приложение php отправлять sms с телефона Android с приложением usb к моему компьютеру. Я нашел несколько уроков, но они не сработали. есть ли способ сделать это без каких-либо апи и бесплатно?
Попробуйте NanoHttpd для 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 получит запрос в функции "serve":
@Override
public synchronized Response serve(IHTTPSession session) {
}
Шаг 4: проанализируйте данные (сообщение и номер мобильного телефона) из запроса в функции "serve" и отправьте SMS с помощью класса SmsManager.
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(number, null, message, null,
null);
Я сделал аналогичную вещь для своей работы (я реализовал ее как Android-сервис), и она работает как шарм. Его очень легко следовать, а сервер NanoHttpd довольно стабилен для работы.