首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用textlocal在android中发送文本消息

如何使用textlocal在android中发送文本消息
EN

Stack Overflow用户
提问于 2020-01-02 10:10:31
回答 2查看 1.6K关注 0票数 0

我想在网站上使用textlocal.I注册发送消息,创建一个新的Api密钥,并遵循youtube教程,但我并不是只为成功干杯。我正在上传代码,请任何人都可以帮助我,我在这里遗漏了什么,它没有把文本发送到设备上,只给我敬酒。

代码语言:javascript
复制
public class MainActivity extends AppCompatActivity {

    private EditText editTextTo, editTextMessage;
    RelativeLayout activity_main;
    Button button;
    private RequestQueue requestQueue;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        activity_main = (RelativeLayout) findViewById(R.id.activity_main);
        editTextTo = (EditText) findViewById(R.id.editTextTo);
        editTextMessage = (EditText) findViewById(R.id.editTextMessage);
        button = (Button) findViewById(R.id.btn);
        requestQueue = Volley.newRequestQueue(this);

        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                try {
                    // Construct data
                    String apiKey = "apikey=" + "<SECRET-API-KEY>";
                    String message = "&message=" + editTextMessage.getText().toString();
                    String sender = "&sender=" + "<SENDER-NAME>";
                    String numbers = "&numbers=" + editTextTo.getText().toString();

                    // Send data
                    HttpURLConnection conn = (HttpURLConnection) new URL("https://api.txtlocal.com/send/?").openConnection();
                    String data = apiKey + numbers + message + sender;
                    conn.setDoOutput(true);
                    conn.setRequestMethod("POST");
                    conn.setRequestProperty("Content-Length", Integer.toString(data.length()));
                    conn.getOutputStream().write(data.getBytes("UTF-8"));
                    final BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
                    final StringBuffer stringBuffer = new StringBuffer();
                    String line;
                    while ((line = rd.readLine()) != null) {
                        Toast.makeText(MainActivity.this, line.toString(), Toast.LENGTH_LONG).show();
                    }
                    rd.close();


                } catch (Exception e) {
                    Toast.makeText(MainActivity.this, e.getMessage(), Toast.LENGTH_SHORT).show();
                }
            }
        });

        StrictMode.ThreadPolicy st = new StrictMode.ThreadPolicy.Builder().build();
        StrictMode.setThreadPolicy(st);
    }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-01-04 17:33:43

Iam使用sendpk,他们的服务和包都是good.Simply注册到他们的站点上,您可以在测试后获得5条免费消息,您可以购买packages.They,提供各种options.After注册,您可以为java获取Api,php etc.Just将其放入您的代码中,然后繁荣您就可以去了。我正在发布一个我用来测试的代码,你可以根据你的需要进行修改。

XML:

代码语言:javascript
复制
<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">
        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="To"
            android:inputType="phone"
            android:id="@+id/editTextTo"/>
        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="Message"
            android:id="@+id/editTextMessage"/>
        <Button
            android:id="@+id/btn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Send"/>
    </LinearLayout>

爪哇:

代码语言:javascript
复制
public class MainActivity extends AppCompatActivity {
    private EditText editTextTo, editTextMessage;
    RelativeLayout activity_main;
    Button button;

    private RequestQueue requestQueue;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        activity_main = (RelativeLayout) findViewById(R.id.activity_main);
        editTextTo = (EditText) findViewById(R.id.editTextTo);
        editTextMessage = (EditText) findViewById(R.id.editTextMessage);
        button = (Button) findViewById(R.id.btn);
        requestQueue = Volley.newRequestQueue(this);

        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
                imm.hideSoftInputFromWindow(v.getWindowToken(), 0);

                if (editTextTo.getText().toString().isEmpty()) {
                    Snack("Number is empty");
                } else if (editTextTo.getText().toString().isEmpty()) {
                    Snack("Check the number");
                } else if (editTextMessage.getText().toString().isEmpty()) {
                    Snack("Message is empty");
                } else {
                    SendSms(editTextTo.getText().toString(), editTextMessage.getText().toString());
                }
            }
        });
    }


    public void Snack(String message) {
        Snackbar.make(activity_main, message, Snackbar.LENGTH_LONG).setAction("Action", null).show();
    }


    public void SendSms(final String to, final String message) {

        StringRequest menuRequest = new StringRequest(Request.Method.POST, "https://sendpk.com/api/sms.php?",
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {
                        try {
                            JSONArray jsonResponse = new JSONObject(response).getJSONArray("check");

                            int i = jsonResponse.length();
                            for (int j = 0; j < i; j++) {
                                JSONObject jsonChildNode = jsonResponse.getJSONObject(j);
                                Snack(jsonChildNode.optString("sms").toString());

                            }

                        } catch (JSONException e) {
                            e.printStackTrace();
                            Log.e("Json", e.getMessage());
                            Snack("Json " + e.getMessage());
                        }
                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        error.printStackTrace();
                        Snack("Volley " + error.getMessage());
                    }
                }
        ) {
            @Override
            protected Map<String, String> getParams() {
                Map<String, String> params = new HashMap<>();
                params.put("username", "username");
                params.put("password", "password");
                params.put("sender", "name with which you want to send message(whihc appear instead of number and you can also have number over here like 8383)");
                params.put("mobile", "mobile number which will recieve);
                params.put("message", message);
                return params;
            }
        };

    }

}
票数 0
EN

Stack Overflow用户

发布于 2020-07-15 06:04:43

nodejs使用中的textlocal可以运行npm节点获取和npm .创建Post Api并粘贴此代码。const响应=等待获取(消息.,{方法:'GET‘});const json1=await response.json();console.log('textlocal',json1);

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59561547

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档