如何制作Android应用程序,在进入应用程序之前,用户需要输入他/她的电话号码才能登录。在输入他们的电话号码之后,用户接收带有激活码的消息或者例如Viber或Whatsapp工作的呼叫。 我已经知道如何使用电子邮件,密码进行登录/注册,但我不确定用户如何收到带有激活码的消息,并且它与电话号码一起使用。
提前致谢。
答案 0 :(得分:1)
您可以将Twilio用于此目的
在后台线程中调用以下calss
public class TwilioTest {
public static final String ACCOUNT_SID = "XXXXXXXXXXXXXXXXXXXXXXX";
public static final String AUTH_TOKEN = "XXXXXXXXXXXXXXXXXXXXXXXXX";
public TwilioTest(String number, String code) {
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(
"https://api.twilio.com/2010-04-01/Accounts/ACec5a3465a111443de55a79a47b22f4b5/SMS/Messages");
String base64EncodedCredentials = "Basic "
+ Base64.encodeToString(
(ACCOUNT_SID + ":" + AUTH_TOKEN).getBytes(),
Base64.NO_WRAP);
httppost.setHeader("Authorization", base64EncodedCredentials);
try {
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("From", "+12568011137"));
nameValuePairs.add(new BasicNameValuePair("To", number));
nameValuePairs.add(new BasicNameValuePair("Body",
"Welcome to demo app. Your OTP is " + code));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
// Execute HTTP Post Request
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
System.out.println("Entity post is: "
+ EntityUtils.toString(entity));
} catch (ClientProtocolException e) {
} catch (IOException e) {
}
}
您需要生成随机代码 上面的类有构造函数,它接受数字和四位数代码。
您可以按以下方式调用
ProgressDialog dialog;
dialog = new ProgressDialog(Home.this);
dialog.setMessage("Sending Message");
dialog.setCancelable(false);
new AsyncTask<Void, Void, Void>() {
protected void onPostExecute(Void result) {
dialog.cancel();
};
@Override
protected Void doInBackground(Void... params) {
// TODO Auto-generated method stub
new TwilioTest(number, randomCode);
return null;
}
protected void onPreExecute() {
dialog.show();
};
}.execute();
完成此操作后,您可以比较已发送和输入的代码。