首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >自动发送Android短信

自动发送Android短信
EN

Stack Overflow用户
提问于 2018-06-13 21:45:32
回答 1查看 49关注 0票数 -1

Firebase数据库屏幕截图

我是android和firebase的初学者,正在开发一个驾校应用程序。我要成功地添加客户详细信息到firebase数据库(‘姓名’,‘电话’,'fromdate‘和'todate')。我想向客户发送短信提醒,例如(“您的许可证即将到期”)。使用firebase数据库中的'phone‘和'date’。短信应该在到期日期发送(我指的是firebase数据库中的'todate‘)。这里我附上了我的firebase数据库截图。请给我一个如何做到这一点的例子。

更新客户详细信息

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


private EditText edtname, edtpho;
private Button btnsubmit;
private EditText datepickerto, datepickerfr;
private Calendar mcurrentDate, mlateDate;

int day, month, year;

private DatabaseReference childref;
private DatabaseReference listref;
private DatabaseReference noderef;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_updatecustomer);

    getSupportActionBar().setDisplayShowHomeEnabled(true);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);


    ActionBar actionBar = getSupportActionBar();
    actionBar.setTitle("Update your Customer Details");

    actionBar.setDisplayHomeAsUpEnabled(true);
    actionBar.setDisplayShowHomeEnabled(true);


    datepickerto = (EditText)findViewById(R.id.datepickerto);
    datepickerfr = (EditText)findViewById(R.id.datepickerfr);

    edtname = (EditText)findViewById(R.id.edtname);
    edtpho = (EditText)findViewById(R.id.edtpho);

    btnsubmit = (Button)findViewById(R.id.btnsubmit);


    mcurrentDate = Calendar.getInstance();

    day = mcurrentDate.get(Calendar.DAY_OF_MONTH);
    month = mcurrentDate.get(Calendar.MONTH);
    year = mcurrentDate.get(Calendar.YEAR);

    day = day+1;

    datepickerto.setText(day+"-"+month+"-"+year);

    datepickerto.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            DatePickerDialog datePickerDialog = new 
  DatePickerDialog(Updateproduction.this, new 
  DatePickerDialog.OnDateSetListener() {
                @Override
                public void onDateSet(DatePicker view, int year, int 
  monthOfYear, int dayOfMonth) {
                    monthOfYear =monthOfYear+1;
                    datepickerto.setText(dayOfMonth+"-"+monthOfYear+"- 
  "+year);
                }
            }, year, month, day);
            datePickerDialog.show();
        }
     });

    mlateDate = Calendar.getInstance();

    day = mlateDate.get(Calendar.DAY_OF_MONTH);
    month = mlateDate.get(Calendar.MONTH);
    year = mlateDate.get(Calendar.YEAR);

    month = month+1;

    datepickerfr.setText(day+"-"+month+"-"+year);

    datepickerfr.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            DatePickerDialog datePickerDialog = new 
  DatePickerDialog(Updatecustomer.this, new 
  DatePickerDialog.OnDateSetListener() {
                @Override
                public void onDateSet(DatePicker view, int year, int 
  monthOfYear, int dayOfMonth) {
                    monthOfYear =monthOfYear+1;
                    datepickerfr.setText(dayOfMonth+"-"+monthOfYear+"- 
  "+year);
                }
            }, year, month, day);
            datePickerDialog.show();
        }
    });


    final FirebaseDatabase database = FirebaseDatabase.getInstance();
    final DatabaseReference table_user = database.getReference();

    childref = table_user.child("Rajadriving");


    btnsubmit.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
           final ProgressDialog mDiaglog = new 
  ProgressDialog(Updateproduction.this);
           mDiaglog.setMessage("Please Waiting...");
           mDiaglog.show();

            table_user.addValueEventListener(new ValueEventListener() {
                @Override
                public void onDataChange(DataSnapshot dataSnapshot) {

    //if(dataSnapshot.child(spinnershift.getSelectedItem()
   .toString()).exists())
                    //  {
                    //     mDiaglog.dismiss();
                    //    Toast.makeText(Updatecustomer.this, "Data 
 already Stored", Toast.LENGTH_SHORT).show();
                    // }
                    //  else
                    {
                        mDiaglog.dismiss();
                        Datastore user = new 


  Datastore(datepickerfr.getText().toString(),datepickerto.getText()
 .toString(),
                                edtpho.getText().toString().trim(), 
  edtname.getText().toString().trim());


                        listref = 
 childref.child(datepickerfr.getText().toString());
                        noderef =  
 listref.child(edtname.getText().toString());
                        noderef.setValue(user);

                        //Intent addintent = new 
Intent(MainActivity.this,Paid.class);
                        // startActivity(addintent);
                        Toast.makeText(Updatecustomer.this, "Data saved 
successfully !", Toast.LENGTH_SHORT).show();
                        finish();
                    }
                }

                @Override
                public void onCancelled(DatabaseError databaseError) {

                }
            });
        }
    });


 }


 @Override
 public boolean onOptionsItemSelected(MenuItem item) {
    int id = item.getItemId();

    if (id == android.R.id.home){
        this.finish();
    }
    return super.onOptionsItemSelected(item);
 }
 }

activity_update_customer.xml

代码语言:javascript
复制
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.udayaj.rajadriving.Updatecustomer">

<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="Raja Driving School"
    android:textStyle="bold"
    android:textColor="#f05"
    android:textSize="25dp"
    android:fontFamily="sans-serif"
    android:gravity="center"
    android:id="@+id/textView" />

<EditText
    android:id="@+id/edtname"
    android:layout_width="250dp"
    android:layout_height="wrap_content"
    android:layout_below="@+id/datepickerfr"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="35dp"
    android:hint="Enter Customer Name"
    android:inputType="textPersonName"
    android:textSize="16dp" />

<EditText
    android:id="@+id/edtpho"
    android:layout_width="250dp"
    android:layout_height="wrap_content"
    android:layout_alignStart="@+id/edtname"
    android:layout_below="@+id/edtname"
    android:layout_marginTop="19dp"
    android:hint="Enter Phone No."
    android:inputType="number"
    android:minLines="10"/>


<Button
    android:id="@+id/btnsubmit"
    android:layout_width="150dp"
    android:layout_height="55dp"
    android:layout_below="@+id/edtpho"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="96dp"
    android:background="@drawable/sty_submit"
    android:text="Submit"
    android:textColor="@android:color/white" />

<EditText
    android:id="@+id/datepickerfr"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/textView5"
    android:layout_marginEnd="19dp"
    android:layout_toStartOf="@+id/datepickerto"
    android:hint="Enter From Date"
    android:inputType="date" />

<EditText
    android:id="@+id/datepickerto"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentEnd="true"
    android:layout_below="@+id/textView5"
    android:layout_marginEnd="42dp"
    android:hint="Enter Expire Date"
    android:inputType="date" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/textView"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="23dp"
    android:text="Date use this format eg:6-6-2018."
    android:id="@+id/textView5" />

 </RelativeLayout>
EN

回答 1

Stack Overflow用户

发布于 2018-06-13 21:52:52

您可以从查看“服务”开始,然后创建一个服务,它会检查今天的日期(每天),并使用expiry_date == todays_date从数据库中请求任何记录。

Services tutorial

如果是,则收集列表中的电话号码,并通过短信发送方法进行处理。

SMS Sending

测试SMS功能时,请确保您已在Manifest文件中请求了权限,并根据Android版本,在执行privelage之前进行请求。

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

https://stackoverflow.com/questions/50838845

复制
相关文章

相似问题

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