【发布时间】:2018-04-13 12:01:12
【问题描述】:
我想在给定的时间和日期使用日期选择器和时间选择器在 android 中安排一条消息,非常感谢任何帮助。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mEditText = (EditText) findViewById(R.id.username);
msendSms = (EditText) findViewById(R.id.sendssms);
mEditText.setOnTouchListener(new RightDrawableOnTouchListener(mEditText) {
@Override
public boolean onDrawableTouch(MotionEvent event) {
mEditText.setText("");
Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
startActivityForResult(intent, PICK_CONTACT);
return true;
}
});
pickdate = (Button) findViewById(R.id.pickdate);
pickdate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
datepicker();
}
});
pickTime = (Button) findViewById(R.id.pickTime);
pickTime.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Calendar mcurrentTime = Calendar.getInstance();
int hour = mcurrentTime.get(Calendar.HOUR_OF_DAY);
int minute = mcurrentTime.get(Calendar.MINUTE);
mTimePicker = new TimePickerDialog(MainActivity.this, new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker timePicker, int selectedHour, int selectedMinute) {
pickTime.setText( selectedHour+ ":" +selectedMinute);
}
}, hour, minute,false);
mTimePicker.setTitle("Select Time");
mTimePicker.show();
}
});
ScheduleMesage = (Button) findViewById(R.id.scheduleMsg);
ScheduleMesage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
phoneNo = mEditText.getText().toString().trim();
message = msendSms.getText().toString().trim();
SmsManager smsManager=SmsManager.getDefault();
smsManager.sendTextMessage(phoneNo, null, message, null, null);
Toast.makeText(getApplicationContext(), "SMS sent.", Toast.LENGTH_LONG).show();
}
});
}
@Override
public void onActivityResult(int reqCode, int resultCode, Intent data) {
super.onActivityResult(reqCode, resultCode, data);
switch (reqCode) {
case (PICK_CONTACT):
if (resultCode == Activity.RESULT_OK) {
Uri contactData = data.getData();
Cursor c = managedQuery(contactData, null, null, null, null);
if (c.moveToFirst()) {
String id = c.getString(c.getColumnIndexOrThrow(ContactsContract.Contacts._ID));
String hasPhone = c.getString(c.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));
if (hasPhone.equalsIgnoreCase("1")) {
Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + id, null, null);
phones.moveToFirst();
String cNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
cNumber = cNumber.replaceAll("[\\D]", "");
if (cNumber.length() >= 10) {
cNumber = cNumber.substring(cNumber.length() - 10);
}
Toast.makeText(getApplicationContext(), cNumber, Toast.LENGTH_SHORT).show();
String nameContact = c.getString(c.getColumnIndexOrThrow(ContactsContract.Contacts.DISPLAY_NAME));
mEditText.setText(nameContact + " " + cNumber);
}
}
}
}
}
@TargetApi(Build.VERSION_CODES.N)
private void datepicker() {
Calendar calendar = Calendar.getInstance();
final int mYear = calendar.get(Calendar.YEAR);
final int mMonth = calendar.get(Calendar.MONTH);
final int mDay = calendar.get(Calendar.DAY_OF_MONTH);
datePickerDialog = new DatePickerDialog(MainActivity.this,
new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker datePicker, int i, int i1, int i2) {
time = "" + i + "-" + i2 + "-" + (i1 + 1);
pickdate.setText(time);
}
}, mYear, mMonth, mDay);
datePickerDialog.getDatePicker().setMinDate(System.currentTimeMillis() - 1000);
pickdate.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
datePickerDialog.show();
return false;
}
});
pickdate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
datepicker();
}
});
}
我正在使用上面的代码立即发送短信我可以发送短信但是 我需要在预定的时间发送短信。
【问题讨论】:
-
显示一些努力
-
我正在使用日期选择器和时间选择器,我可以直接通过应用程序发送短信,但我无法在预定的时间和日期发送它
-
你能通过编辑这个问题发布你的代码吗?请向我们展示您尝试做的事情。
标签: android scheduled-tasks smsmanager