我创建了一个以编程方式插入消息的应用程序。在该应用程序中成功运行。
它会插入记录中给出的任何消息。之后,您将无法在设备或模拟器的消息中看到插入的消息。看看那个。
我不知道为什么会这样。当您在任务管理器中停止发送消息时,您将能够看到您的消息。之后,您可以看到插入的消息。
该代码中缺少什么。
任何帮助表示赞赏?最诚挚的问候 - SPK
代码
的活动:
public class SMS extends Activity
{
Button btnSendSMS;
EditText txtPhoneNo;
EditText txtMessage;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btnSendSMS = (Button) findViewById(R.id.btnSendSMS);
final insert i = new insert(this);
btnSendSMS.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
i.method_inser();
Toast.makeText(getApplicationContext(), "Inserted", Toast.LENGTH_SHORT).show();
}
});
}
}
类插入:
public class insert
{
Context ctx,context;
ContentResolver cr;
public insert(Context context)
{
this.context = context;
cr = context.getContentResolver();
}
public void method_inser()
{
Uri smsuri = Uri.parse("content://sms/");
ContentValues iv = new ContentValues();
String[] final_result = {"1","1","15555215556","3","1320753694842","0","1","-1","1","0","null","Gingerbread","null","0","0","1"};
iv.put("_id", final_result[0]);
iv.put("thread_id", final_result[1]);
iv.put("address", final_result[2]);
iv.put("person", final_result[3]);
iv.put("date", final_result[4]);
iv.put("protocol", final_result[5]);
iv.put("read", final_result[6]);
iv.put("status", final_result[7]);
iv.put("type", final_result[8]);
iv.put("reply_path_present", final_result[9]);
iv.put("subject", final_result[10]);
iv.put("body", final_result[11]);
iv.put("service_center", final_result[12]);
iv.put("locked", final_result[13]);
iv.put("error_code", final_result[14]);
iv.put("seen", final_result[15]);
cr.insert(smsuri, iv);
}
}
答案 0 :(得分:3)
_id
和thread_id
是primary key
,您正在尝试一直插入修正值,因此它只能运行一次
同时删除两个字段error_code
和seen
,因为there are no any column in a sms table
此外,您还必须在清单
中添加以下权限<uses-permission android:name="android.permission.SEND_SMS"/>
<uses-permission android:name="android.permission.WRITE_SMS"/>
<uses-permission android:name="android.permission.READ_SMS">
在收件箱中插入新邮件后,您必须使用内容解析程序通知已更改
使用此代码通知更改
Uri uri = cr.insert(smsuri, iv);
cr.notifyChange(uri, null);