Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 数据库中的数据更改后如何通知内容解析器?_Android_Sms_Background Process - Fatal编程技术网

Android 数据库中的数据更改后如何通知内容解析器?

Android 数据库中的数据更改后如何通知内容解析器?,android,sms,background-process,Android,Sms,Background Process,我创建了一个以编程方式插入消息的应用程序。在该应用程序中成功运行 它将插入记录中给出的任何消息。之后,您将无法在设备或emulator所在的消息中看到插入的消息。看看这个 我不知道为什么会这样。当您在任务管理器中停止消息时,您将能够看到您的消息。之后,您可以看到插入的消息 我在代码中遗漏了什么 感谢你的帮助吗?致以最良好的问候-SPK 代码 活动: public class SMS extends Activity { Button btnSendSMS; EditText t

我创建了一个以编程方式插入消息的应用程序。在该应用程序中成功运行

它将插入记录中给出的任何消息。之后,您将无法在设备或emulator所在的消息中看到插入的消息。看看这个

我不知道为什么会这样。当您在任务管理器中停止消息时,您将能够看到您的消息。之后,您可以看到插入的消息

我在代码中遗漏了什么

感谢你的帮助吗?致以最良好的问候-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);
    }
}

\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);