2015-01-07 45 views
0

我試圖構建一個項目,顯示如何通過Android應用程序發送短信。 我已經建立了項目(在eclipse中)使用SmsManager對象,根據代碼在這裏:http://www.tutorialspoint.com/android/android_sending_sms.htm在Android應用程序中發送短信

該項目運行良好,但短信不發送給我。 我想我還需要添加其他東西才能發送短信 - 所以我錯過了什麼? 或者我可能沒有正確插入號碼?我該怎麼寫呢?我嘗試了幾種方法...

任何幫助將深深appriciated! 謝謝。

+0

任何線索? – Whooper

+0

您是否在Android清單中添加了許可 – Simar

+5

如果您正在使用模擬器,它將不會發送任何短信 – jDur

回答

0

下面是選擇從聯繫人列表上點擊按鈕的接觸代碼:

Button x; 
String phn_no, msg,c; 

    x.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View arg0) { 
       // TODO Auto-generated method stub 
       Intent intent = new Intent(Intent.ACTION_PICK, 
         ContactsContract.Contacts.CONTENT_URI); 
       startActivityForResult(intent, PICK_CONTACT); 
      } 

     }); 


    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     // TODO Auto-generated method stub 
     super.onActivityResult(requestCode, resultCode, data); 

     switch (requestCode) { 
     case (1): 
      if (resultCode == Activity.RESULT_OK) { 
       Uri contactData = data.getData(); 
       Cursor c = getContentResolver().query(contactData, null, null, 
         null, null); 
       if (c.moveToFirst()) { 
        String id = c 
          .getString(c 
            .getColumnIndexOrThrow(ContactsContract.Contacts._ID)); 

        String hasPhone = c 
          .getString(c 
            .getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER)); 

        if (hasPhone.equalsIgnoreCase("1")) { 
         Cursor phones = getContentResolver() 
           .query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, 
             null, 
             ContactsContract.CommonDataKinds.Phone.CONTACT_ID 
             + " = " + id, null, null); 
         phones.moveToFirst(); 
         phn_no = phones.getString(phones 
           .getColumnIndex("data1")); 

         // Toast.makeText(getApplicationContext(), phn_no, 
         // Toast.LENGTH_LONG).show(); 
         contact_num.setText(phn_no); 

         // String name = 
         // c.getString(c.getColumnIndex(StructuredPostal.DISPLAY_NAME)); 
         // Toast.makeText(this, "contact info : "+ 
         // phn_no+"\n"+name, Toast.LENGTH_LONG).show(); 
        } 

       } 
      } 
     } 
    } 

這是發送短信的代碼:在日誌中

void send_sms(final String phn_no, final String msg) { 
     final SmsManager smsManager = SmsManager.getDefault(); 
     smsManager.sendTextMessage(phn_no, null, msg, null, null); 
    }