내 응용 프로그램은 사용자가 원하는 메시지를 보내는 곳입니다. 받는 사람의 이름이 들어있는 Spinner가 있으며 하드 코드되어 있습니다. 나는 토스트 메시지가 "SMS가 성공적으로 전송되었습니다"라는 메시지를 만들었습니다. 그러나 토스트 메시지에 특정 수취인 이름을 포함시켜 메시지가 수취인에게 전송되었는지 확인해야한다는 것을 알고 있습니다.SMS를받을 때 수취인 이름 또는 Spinner ID를 포함하는 토스트 메시지
나는받는 사람의 이름을 포함 시키려고했지만 토스트 메시지를 시도했지만 응용 프로그램을 실행할 때 오류가 발생하고 토스트 메시지가 실패했습니다. SMS 앱의 전체 코드를 게시합니다.
public class SMSEvents extends Activity
{
Button btnSMS;
EditText messageTxt;
IntentFilter intentFilter;
TextView text, textName;
Spinner sendTo;
ArrayAdapter<String> adapter;
String friends[] = {"Kanak Priya", "Joanne Liew", "Melissa Haiting", "Michelle Lam", "Teo Kin Hua", "David Yeo", "Nur Ashiqin", "Stephanie"};
private int namesSpinnderId;
private BroadcastReceiver intentReceiver = new BroadcastReceiver()
{
@Override
public void onReceive(Context context, Intent intent)
{
// ---display the SMS received in the TextView---
TextView text = (TextView) findViewById(R.id.text);
text.setText(intent.getExtras().getString("sms"));
}
};
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.sms);
sendTo = (Spinner) findViewById(R.id.sendTo);
adapter = new ArrayAdapter<String>(this,
R.layout.spinner_text, friends);
sendTo.setAdapter(adapter);
/*BuddyDBAdapter buddyDB = new BuddyDBAdapter(this);
sendTo = (Spinner) findViewById(R.id.sendTo);
Cursor friendsCursor = buddyDB.getAllNames();
startManagingCursor(friendsCursor);*/
/*String[] from = new String[]{BuddyDBAdapter.KEY_NAME};
int[] to = new int[]{R.id.sendTo};
SimpleCursorAdapter friendsAdapter = new SimpleCursorAdapter(this, android.R.layout.simple_spinner_item, friendsCursor, from, to);
friendsAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
sendTo.setAdapter(friendsAdapter);*/
/* sendTo.setOnItemSelectedListener(new OnItemSelectedListener()
{
@Override
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id)
{
Cursor c = (Cursor)parent.getItemAtPosition(pos);
namesSpinnderId = c.getInt(c.getColumnIndexOrThrow(BuddyDBAdapter.KEY_ROWID));
}
@Override
public void onNothingSelected(AdapterView<?> arg0)
{
// TODO Auto-generated method stub
}
});*/
// ---intent to filter for SMS messages received---
intentFilter = new IntentFilter();
intentFilter.addAction("SMS_RECEIVED_ACTION");
// ---register the receiver---
registerReceiver(intentReceiver, intentFilter);
//sendTo = (EditText) findViewById(R.id.sendTo);
//textName = (TextView) findViewById(R.id.textName);
sendTo = (Spinner) findViewById(R.id.sendTo);
messageTxt = (EditText) findViewById(R.id.messageTxt);
btnSMS = (Button) findViewById(R.id.btnSMS);
btnSMS.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
String contact_name = sendTo.getSelectedItem().toString();
String message = messageTxt.getText().toString();
if (contact_name.length() > 0 && message.length() > 0)
sendSMS(contact_name, message);
else
Toast.makeText(
getBaseContext(),
"Please enter your message",
Toast.LENGTH_SHORT).show();
/*Intent msgIntent = new Intent(android.content.Intent.ACTION_VIEW);
msgIntent.putExtra("sms_body", "default content");
msgIntent.setType("vnd.android-dir/mms-sms");
startActivity(msgIntent);*/
}
});
Button btnBack = (Button) findViewById(R.id.btnMain);
btnBack.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View arg0)
{
Intent menuIntent = new Intent(SMSEvents.this, MainPage.class);
startActivity(menuIntent);
}
});
}
@Override
protected void onResume()
{
// ---register the receiver---
// registerReceiver(intentReceiver, intentFilter);
super.onResume();
}
@Override
protected void onPause()
{
// ---unregister the receiver---
// unregisterReceiver(intentReceiver);
super.onPause();
}
@Override
protected void onDestroy()
{
// ---unregister the receiver---
unregisterReceiver(intentReceiver);
super.onPause();
}
private void sendSMS(String contact_name, String message)
{
String SENT = "SMS SENT";
String DELIVERED = "SMS_DELIVERED";
PendingIntent sentPI = PendingIntent.getBroadcast(this, 0, new Intent(
SENT), 0);
PendingIntent deliveredPI = PendingIntent.getBroadcast(this, 0,
new Intent(DELIVERED), 0);
// ---when the SMS has been sent---
registerReceiver(new BroadcastReceiver()
{
@Override
public void onReceive(Context arg0, Intent arg1)
{
switch (getResultCode())
{
case Activity.RESULT_OK:
Toast.makeText(getBaseContext(), "SMS is sent to" +contact_name successfully",
Toast.LENGTH_SHORT).show();
break;
case SmsManager.RESULT_ERROR_GENERIC_FAILURE:
Toast.makeText(getBaseContext(), "Service failure",
Toast.LENGTH_SHORT).show();
break;
case SmsManager.RESULT_ERROR_NO_SERVICE:
Toast.makeText(getBaseContext(), "No service",
Toast.LENGTH_SHORT).show();
break;
case SmsManager.RESULT_ERROR_NULL_PDU:
Toast.makeText(getBaseContext(), "Null Pdu",
Toast.LENGTH_SHORT).show();
break;
case SmsManager.RESULT_ERROR_RADIO_OFF:
Toast.makeText(getBaseContext(), "Radio off",
Toast.LENGTH_SHORT).show();
break;
}
}
}, new IntentFilter(SENT));
// ---when the SMS has been delivered---
registerReceiver(new BroadcastReceiver()
{
@Override
public void onReceive(Context arg0, Intent arg1)
{
switch (getResultCode())
{
case Activity.RESULT_OK:
Toast.makeText(getBaseContext(), "SMS delivered",
Toast.LENGTH_SHORT).show();
break;
case Activity.RESULT_CANCELED:
Toast.makeText(getBaseContext(),
"SMS not delivered", Toast.LENGTH_SHORT)
.show();
break;
}
}
}, new IntentFilter(DELIVERED));
SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage("5554", null, message, sentPI, deliveredPI);
//sms.sendTextMessage(contact_name, null, message, sentPI, deliveredPI);
/*try
{
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(contact_name, null, message, null, null);
Toast.makeText(getApplicationContext(), "SMS is sent successfully!", Toast.LENGTH_LONG).show();
}
catch(Exception e)
{
Toast.makeText(getApplicationContext(), "SMS failed! Please try again later!", Toast.LENGTH_LONG).show();
e.printStackTrace();
}*/
}
}
Toast.makeText(getBaseContext(), "SMS is sent to" +contact_name successfully", Toast.LENGTH_SHORT).show();
수신자 이름을 포함하려고합니다.
이 토스트를하는 방법을 아는 사람이라면 언제든지 감사하겠습니다.). 죄송합니다. 간단한 도움을 요청했지만이 토스트 메시지를 3 가지 방법으로 시도했습니다.
미리 감사드립니다. =)