У меня есть приложение, в котором пользователь может ввести номер телефона и сообщение и нажать «отправить», и он отправит сообщение на номер телефона, на который он установил , Когда пользователь отправляет сообщение, это конкретное сообщение также появляется в папке входящих сообщений на телефоне. То, что я пытаюсь выполнить, делает выбор флажка, где пользователь может проверить или снять флажок, будут ли сохраненные сообщения отправляться в их почтовые ящики сообщений.Выберите, следует ли хранить отправленные sms-сообщения в папке «Входящие»
Вот мой флажок предпочтения в prefs.xml
<CheckBoxPreference
android:key="key_addvalues"
android:summary="Choose whether to store sent messages in your inbox"
android:title="Store messages"
android:defaultValue="true"
/>
Вот main.xml
public class EasyTextActivity extends Activity {
Button buttonSend;
EditText textPhoneNo;
EditText textSMS;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
String userTheme = prefs.getString("key_theme", "dark");
if (userTheme.equals("dark"))
setTheme(R.style.HoloTheme);
else if (userTheme.equals("light"))
setTheme(R.style.HoloLight);
else if (userTheme.equals("lightdark"))
setTheme(R.style.HoloLightDark);
String addvalues = prefs.getString("key_addvalues", "on");
Button btn = (Button) findViewById(R.id.buttonSend);
registerForContextMenu(btn);
buttonSend = (Button) findViewById(R.id.buttonSend);
textPhoneNo = (EditText) findViewById(R.id.editTextPhoneNo);
textSMS = (EditText) findViewById(R.id.editTextSMS);
buttonSend.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String phoneNo = textPhoneNo.getText().toString();
String sms = textSMS.getText().toString();
try {
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(phoneNo, null, sms, null, null);
ContentValues values = new ContentValues();
values.put("address", phoneNo);
values.put("body", sms);
getContentResolver().insert(Uri.parse("content://sms/sent"), values);
Toast.makeText(getApplicationContext(), "Message Sent!", Toast.LENGTH_LONG).show();}
catch (Exception e) {
Toast.makeText(getApplicationContext(),
"Unable to send message",
Toast.LENGTH_LONG).show();
e.printStackTrace();
}
}
});
}
Как вы можете видеть, я успешно добавлен предпочтение, в котором пользователь может выбрать тему из список, однако я не могу понять, как добавить предпочтение, где они могут выбрать, сохраняются ли сообщения в их почтовых ящиках.
Для того, чтобы иметь сообщения сохранить в свой почтовый ящик, я добавил этот код, когда сообщение посылает:
ContentValues values = new ContentValues();
values.put("address", phoneNo);
values.put("body", sms);
getContentResolver().insert(Uri.parse("content://sms/sent"), values);
Однако я невежественный о том, как именно я предполагаю, чтобы сделать приведенный выше код в предпочтение. Спасибо заранее за помощь!
Я не совсем уверен, куда поместить 'окончательное логическое значение, кроме = префов. getBoolean ("key_addvalues", true); 'Потому что независимо от того, где я размещаю приложение, я получаю ошибку времени выполнения. 'If (save) {', похоже, не имеет значения, находится ли он в коде или нет, это является окончательным булевым, вызывающим сбой. Любые идеи о том, как исправить это? – user1798956
Есть ли у вас какие-либо идеи о том, как это исправить? Я действительно потерян здесь – user1798956