Android 数据库中的数据更改后如何通知内容解析器?
我创建了一个以编程方式插入消息的应用程序。在该应用程序中成功运行 它将插入记录中给出的任何消息。之后,您将无法在设备或emulator所在的消息中看到插入的消息。看看这个 我不知道为什么会这样。当您在任务管理器中停止消息时,您将能够看到您的消息。之后,您可以看到插入的消息 我在代码中遗漏了什么 感谢你的帮助吗?致以最良好的问候-SPK 代码 活动:Android 数据库中的数据更改后如何通知内容解析器?,android,sms,background-process,Android,Sms,Background Process,我创建了一个以编程方式插入消息的应用程序。在该应用程序中成功运行 它将插入记录中给出的任何消息。之后,您将无法在设备或emulator所在的消息中看到插入的消息。看看这个 我不知道为什么会这样。当您在任务管理器中停止消息时,您将能够看到您的消息。之后,您可以看到插入的消息 我在代码中遗漏了什么 感谢你的帮助吗?致以最良好的问候-SPK 代码 活动: public class SMS extends Activity { Button btnSendSMS; EditText t
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);
}
}
\u id
和thread\u id
是主键
,您一直在尝试插入固定值,因此它只能工作一次
同时删除两个字段error\u code
和seen
,因为sms表中没有任何列
您还必须在清单中添加以下权限
<uses-permission android:name="android.permission.SEND_SMS"/>
<uses-permission android:name="android.permission.WRITE_SMS"/>
<uses-permission android:name="android.permission.READ_SMS">
你的问题很难理解,我想我没有真正理解你的问题。也许您正在使用MessageQueues,而这些消息被后台核心应用程序使用?请添加一些相关代码并重写您的问题,因为我不太懂。@PhilippWendt:请看我编辑的问题。我编辑了问题并添加了您提供的代码,因此可能有人可以帮助您(很遗憾,我不能)。我感觉有些代码丢失了(没有任何与后台服务相关的内容),但我仍然没有真正理解您的问题。但是也许其他人可以帮忙。@SPK哪里的东西与服务相关。@Sam_k:你需要哪种服务?
Uri uri = cr.insert(smsuri, iv);
cr.notifyChange(uri, null);