如何通过android应用程序向数据库中保存的联系人发送短信?

如何通过android应用程序向数据库中保存的联系人发送短信?,android,Android,我正在开发一个应用程序,它将消息作为输入,并将其发送到数据库中存储的预定义数字!知道问题是当应用程序加载到oncreate()中时,我正在数据库中插入数字方法每次我第一次发送消息时,如果它在第二次尝试时将消息发送到4个号码,它将向8个号码发送短信,并尝试移动我的数据插入代码,这样它将只插入数据一次,而不是每次加载,但它不起作用。请任何人帮助PP谢谢 btnSendSMS.setOnClickListener(new View.OnClickListener() { p

我正在开发一个应用程序,它将消息作为输入,并将其发送到数据库中存储的预定义数字!知道问题是当应用程序加载到oncreate()中时,我正在数据库中插入数字方法每次我第一次发送消息时,如果它在第二次尝试时将消息发送到4个号码,它将向8个号码发送短信,并尝试移动我的数据插入代码,这样它将只插入数据一次,而不是每次加载,但它不起作用。请任何人帮助PP谢谢

 btnSendSMS.setOnClickListener(new View.OnClickListener() 
    {
        public void onClick(View v) 
        {  
            //loop++;

                 db.open();
                 //loop++;
                  long id;


                  id = db.insertTitle(
                            "5556");  
                    id = db.insertTitle(
                            "5556");  

                    id = db.insertTitle(
                            "5556");  

                    id = db.insertTitle(
                            "5556");  

                 db.close();


             message = txtMessage.getText().toString();                 
            if ( message.length()>0 && message.length()<200)                
            {
                 db.open(); 
                 Cursor c = db.getAllTitles();
                 if (c.moveToFirst())
                 { 


                     String phoneNo; 

                     do { phoneNo=c.getString(1) ;  
                        sendSMS(phoneNo,message);    
                      count++;
                        // db.DisplayTitle(c);
                        Toast.makeText(DatabaseSmsActivity.this,"sms no : "+count,Toast.LENGTH_LONG).show(); 

                     } while (c.moveToNext());
                 }
                 db.close();
                // Toast.makeText(DatabaseSmsActivity.this,"Total SMS sent : "+count,Toast.LENGTH_LONG).show(); 

            }       


            else
                {Toast.makeText(getBaseContext(), 
                    "Please enter message.", 
                    Toast.LENGTH_SHORT).show();}

        }
    });        
btnSendSMS.setOnClickListener(新视图.OnClickListener()
{
公共void onClick(视图v)
{  
//loop++;
db.open();
//loop++;
长id;
id=db.insertTitle(
"5556");  
id=db.insertTitle(
"5556");  
id=db.insertTitle(
"5556");  
id=db.insertTitle(
"5556");  
db.close();
message=txtMessage.getText().toString();

如果(message.length()>0&&message.length()不在每次创建()时插入数字呼叫只需插入一次,从一开始就用上一个号码更新该号码。我认为这将解决您的问题。

使用此代码每次用户单击按钮时,号码
5556
会插入数据库四次。这意味着当用户再次单击按钮时,会添加另外四行
5556

我想你是在试着做,当用户点击按钮只是发送短信到数据库中预定义的数字,这是4号

如果是:

将静态变量添加到活动中

public static final String PREFS = "prefs";
private SharedPreferences preferences;
在活动的onCreate方法上,调用类似于
enterNumbersToDatabase()的函数

enterNumbersToDatabase函数:

private void enterNumbersToDatabase(){
if(!preferences.getBoolean("isNumbersAddedToDB", false)){

db.open();
long id;

id = db.insertTitle("5556");  
id = db.insertTitle("5556");  
id = db.insertTitle("5556");  
id = db.insertTitle("5556");  
    db.close();
SharedPreferences.Editor preferencesEditor  = preferences.edit();
    preferencesEditor.putBoolean("isNumbersAddedToDB", true)
preferencesEditor.commit();
} 
}
在按钮的onClick函数中,跳过
向数据库添加数字部分
,您就没事了


希望这有帮助

你能和我们分享你正在使用的代码吗?谢谢你的回复这里是一个代码,它在底部点击“将数字插入数据库”并获取它们以发送sms plzz帮助!!SharedReferences.Editor preferencesEditor=preferences.edit();//方法edit()未定义类型首选项@Murat Nafiz的参数。您能提供帮助吗!!首选项=GetSharedReferences(PREFS,MODE_PRIVATE);//类型不匹配:无法从SharedReferences转换为首选项SharedReferences。编辑器preferencesEditor=Preferences.edit();//方法edit()类型首选项未定义这些错误是cumin如果我修复它们应用程序是强制关闭的?有什么问题吗?Murat Nafiz感谢您的帮助!!错误已删除其运行,但在按钮单击时未发生任何事情我认为数据未插入!!
private void enterNumbersToDatabase(){
if(!preferences.getBoolean("isNumbersAddedToDB", false)){

db.open();
long id;

id = db.insertTitle("5556");  
id = db.insertTitle("5556");  
id = db.insertTitle("5556");  
id = db.insertTitle("5556");  
    db.close();
SharedPreferences.Editor preferencesEditor  = preferences.edit();
    preferencesEditor.putBoolean("isNumbersAddedToDB", true)
preferencesEditor.commit();
} 
}