Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/214.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
Java 不获取联系人单击联系人显示应用程序已停止_Java_Android_Sms - Fatal编程技术网

Java 不获取联系人单击联系人显示应用程序已停止

Java 不获取联系人单击联系人显示应用程序已停止,java,android,sms,Java,Android,Sms,我正在使用smsfunction发送短信,我想从我的号码中提取联系人列表,如果我单击edittext of phoneno,它必须打开我手机的联系人列表,它必须提取我选择的任何联系人号码并发送 现在在emulator中,它显示“SMS失败,请稍后再试!”如果我在设备中使用它,在单击任何联系人后,它显示“我的应用程序已停止” Sendsmsactivity.java public class SendSMSActivity extends Activity { public static

我正在使用smsfunction发送短信,我想从我的号码中提取联系人列表,如果我单击edittext of phoneno,它必须打开我手机的联系人列表,它必须提取我选择的任何联系人号码并发送

现在在emulator中,它显示“SMS失败,请稍后再试!”如果我在设备中使用它,在单击任何联系人后,它显示“我的应用程序已停止”

Sendsmsactivity.java

public class SendSMSActivity extends Activity {
    public static final int RQS_PICKCONTACT    = 1; 
    Button buttonSend;
    //EditText textPhoneNo;
    EditText phoneNo;
    EditText textSMS;
    int columnIndex_number;
    static String stringNumber;
    String sms;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.about);

        buttonSend = (Button) findViewById(R.id.buttonSend);

        textSMS = (EditText) findViewById(R.id.editTextSMS);
        /*textPhoneNo = (EditText) findViewById(R.id.editTextPhoneNo);
        textPhoneNo.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                    Intent intent = new Intent(Intent.ACTION_PICK, People.CONTENT_URI);
                    startActivityForResult(intent, PICK_CONTACT);

                    //Uri uri = Uri.parse("smsto:" + textPhoneNo);
                    //Intent intent = new Intent(Intent.ACTION_SENDTO, uri);
            }
    });*/

        phoneNo = (EditText)findViewById(R.id.phoneNo);

        phoneNo.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            final Uri uriContact = ContactsContract.Contacts.CONTENT_URI;
            Intent intentPickContact = new Intent(Intent.ACTION_PICK, uriContact);
            startActivityForResult(intentPickContact, RQS_PICKCONTACT);
        }
        });



        /*Bundle extras = getIntent().getExtras();
        if(extras !=null) {
            String sms = extras.getString("firstKeyName");
        }*/


        Intent intent1= getIntent(); // gets the previously created intent
        final String firstKeyName = intent1.getStringExtra("firstKeyName");


        textSMS.setText(firstKeyName);


        buttonSend.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {

              //String phoneNo = textPhoneNo.getText().toString();




              try {
                SmsManager smsManager = SmsManager.getDefault();

                //String name = null;

                smsManager.sendTextMessage(stringNumber, null, firstKeyName, null, null);
                Toast.makeText(getApplicationContext(), "SMS Sent!",
                            Toast.LENGTH_LONG).show();
              } catch (Exception e) {
                Toast.makeText(getApplicationContext(),
                    "SMS faild, please try again later!",
                    Toast.LENGTH_LONG).show();
                e.printStackTrace();
              }
              finish();

            }
        });
    }

    /*@Override
    public void onActivityResult(int reqCode, int resultCode, Intent data) {
            super.onActivityResult(reqCode, resultCode, data);

            switch (reqCode) {
                    case (PICK_CONTACT):
                            if (resultCode == Activity.RESULT_OK) {

                                //Uri uri = Uri.parse("smsto:" + textPhoneNo);
                                //Intent intent = new Intent(Intent.ACTION_SENDTO, uri);
                                    Uri contactData = data.getData();
                                    Cursor c = managedQuery(contactData, null, null, null, null);
                                    if (c.moveToFirst()) {
                                           final String name = c.getString(c.getColumnIndexOrThrow(People.NAME));
                                            textPhoneNo.setText(name);
                                    }
                            }
                            break;
            }
    }*/


     protected void onActivityResult(int requestCode,int resultCode,Intent data)
        {
            if(resultCode == RESULT_OK)
            {
                if(requestCode == RQS_PICKCONTACT)
                {
                    Uri returnUri = data.getData();
                    Cursor cursor = getContentResolver().query(returnUri, null, null, null, null);
                    if(cursor.moveToNext()){
                        int columnIndex_ID = cursor.getColumnIndex(ContactsContract.Contacts._ID);
                        String contactID = cursor.getString(columnIndex_ID);

                        int columnIndex_HASPHONENUMBER = cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER);
                        final String stringHasPhoneNumber = cursor.getString(columnIndex_HASPHONENUMBER);

                        if(stringHasPhoneNumber.equalsIgnoreCase("1")){
                            Cursor cursorNum = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
                                    null,
                                    ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "=" + contactID,null,null);

                            //Get the first phone number

                            if(cursorNum.moveToNext())
                            {
                                columnIndex_number = cursorNum.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER);
                                 final String stringNumber = cursorNum.getString(columnIndex_number);
                                phoneNo.setText(stringNumber);
                            }
                        }else{
                            phoneNo.setText("NO Phone Number");
                         }

                    }else{
                         Toast.makeText(getApplicationContext(), "NO data!", Toast.LENGTH_LONG).show();
                    }
                }
            }
        }


}
public class SendSmsActivity extends Activity {
Button buttonSend,get;
private static final int CONTACT_PICKER_RESULT = 1001;
EditText phoneNo;
EditText textSMS;
int columnIndex_number;
static String stringNumber;
String sms;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.send);
    phoneNo = (EditText)findViewById(R.id.editText1);
    textSMS = (EditText) findViewById(R.id.editText2);
    get = (Button) findViewById(R.id.button1);
    get.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
             Intent contactPickerIntent = new Intent(Intent.ACTION_PICK,
                    Contacts.CONTENT_URI);
            startActivityForResult(contactPickerIntent, CONTACT_PICKER_RESULT);


        }
        });
    buttonSend = (Button) findViewById(R.id.button2);    
    buttonSend.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v){
          try {

              String sms =  textSMS.getText().toString().trim();
                Toast.makeText(getApplicationContext(), phoneNo.getText().toString()+sms,
                        Toast.LENGTH_LONG).show();
            SmsManager smsManager = SmsManager.getDefault();
            smsManager.sendTextMessage(phoneNo.getText().toString(), null, sms, null, null);
            Toast.makeText(getApplicationContext(), "SMS Sent!",
                        Toast.LENGTH_LONG).show();

          } catch (Exception e) {
            Toast.makeText(getApplicationContext(),
                "SMS faild, please try again later!",
                Toast.LENGTH_LONG).show();
            e.printStackTrace();
          }


        }
    });
}

 @Override  
 protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
 if (resultCode == RESULT_OK) {  
    switch (requestCode) {  
    case CONTACT_PICKER_RESULT:

        Cursor cursor = null;  
        String phoneNumber = "";
        List<String> allNumbers = new ArrayList<String>();
        int phoneIdx = 0;
        try {  
            Uri result = data.getData();  
            String id = result.getLastPathSegment();  
            cursor = getContentResolver().query(Phone.CONTENT_URI, null, Phone.CONTACT_ID + "=?", new String[] { id }, null);  
            phoneIdx = cursor.getColumnIndex(Phone.DATA);
            if (cursor.moveToFirst()) {
                while (cursor.isAfterLast() == false) {
                    phoneNumber = cursor.getString(phoneIdx);
                    allNumbers.add(phoneNumber);
                    phoneNo.setText(cursor.getString(phoneIdx));

                    cursor.moveToNext();
                }
            } else {
                //no results actions
            }  
        } catch (Exception e) {  
           //error actions
        } finally {  
            if (cursor != null) {  
                cursor.close();
            } 
        }  
        break;  
    }  
} else {
   //activity result error actions
}  
}
}
它没有从我的手机中获取联系人,我的代码中是否有任何错误

Logcat error

06-07 10:32:03.543: E/AndroidRuntime(1015): FATAL EXCEPTION: main
06-07 10:32:03.543: E/AndroidRuntime(1015): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.PICK dat=content://contacts }
06-07 10:32:03.543: E/AndroidRuntime(1015):     at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1622)
06-07 10:32:03.543: E/AndroidRuntime(1015):     at android.app.Instrumentation.execStartActivity(Instrumentation.java:1417)
06-07 10:32:03.543: E/AndroidRuntime(1015):     at android.app.Activity.startActivityForResult(Activity.java:3370)
06-07 10:32:03.543: E/AndroidRuntime(1015):     at android.app.Activity.startActivityForResult(Activity.java:3331)
06-07 10:32:03.543: E/AndroidRuntime(1015):     at com.example.jsonandroid.SendSMSActivity$1.onClick(SendSMSActivity.java:41)
06-07 10:32:03.543: E/AndroidRuntime(1015):     at android.view.View.performClick(View.java:4202)
06-07 10:32:03.543: E/AndroidRuntime(1015):     at android.view.View$PerformClick.run(View.java:17340)
06-07 10:32:03.543: E/AndroidRuntime(1015):     at android.os.Handler.handleCallback(Handler.java:725)
06-07 10:32:03.543: E/AndroidRuntime(1015):     at android.os.Handler.dispatchMessage(Handler.java:92)
06-07 10:32:03.543: E/AndroidRuntime(1015):     at android.os.Looper.loop(Looper.java:137)
06-07 10:32:03.543: E/AndroidRuntime(1015):     at android.app.ActivityThread.main(ActivityThread.java:5039)
06-07 10:32:03.543: E/AndroidRuntime(1015):     at java.lang.reflect.Method.invokeNative(Native Method)
06-07 10:32:03.543: E/AndroidRuntime(1015):     at java.lang.reflect.Method.invoke(Method.java:511)
06-07 10:32:03.543: E/AndroidRuntime(1015):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
06-07 10:32:03.543: E/AndroidRuntime(1015):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
06-07 10:32:03.543: E/AndroidRuntime(1015):     at dalvik.system.NativeStart.main(Native Method)

您可以参考以下内容并对其进行修改。我在我的手机上测试过。请发布坠机的详细日志,我们只能猜测错误

您正在一个按钮单击中调用finish(),该按钮将完成活动。不知道你想做什么

MainActivity.java

public class SendSMSActivity extends Activity {
    public static final int RQS_PICKCONTACT    = 1; 
    Button buttonSend;
    //EditText textPhoneNo;
    EditText phoneNo;
    EditText textSMS;
    int columnIndex_number;
    static String stringNumber;
    String sms;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.about);

        buttonSend = (Button) findViewById(R.id.buttonSend);

        textSMS = (EditText) findViewById(R.id.editTextSMS);
        /*textPhoneNo = (EditText) findViewById(R.id.editTextPhoneNo);
        textPhoneNo.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                    Intent intent = new Intent(Intent.ACTION_PICK, People.CONTENT_URI);
                    startActivityForResult(intent, PICK_CONTACT);

                    //Uri uri = Uri.parse("smsto:" + textPhoneNo);
                    //Intent intent = new Intent(Intent.ACTION_SENDTO, uri);
            }
    });*/

        phoneNo = (EditText)findViewById(R.id.phoneNo);

        phoneNo.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            final Uri uriContact = ContactsContract.Contacts.CONTENT_URI;
            Intent intentPickContact = new Intent(Intent.ACTION_PICK, uriContact);
            startActivityForResult(intentPickContact, RQS_PICKCONTACT);
        }
        });



        /*Bundle extras = getIntent().getExtras();
        if(extras !=null) {
            String sms = extras.getString("firstKeyName");
        }*/


        Intent intent1= getIntent(); // gets the previously created intent
        final String firstKeyName = intent1.getStringExtra("firstKeyName");


        textSMS.setText(firstKeyName);


        buttonSend.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {

              //String phoneNo = textPhoneNo.getText().toString();




              try {
                SmsManager smsManager = SmsManager.getDefault();

                //String name = null;

                smsManager.sendTextMessage(stringNumber, null, firstKeyName, null, null);
                Toast.makeText(getApplicationContext(), "SMS Sent!",
                            Toast.LENGTH_LONG).show();
              } catch (Exception e) {
                Toast.makeText(getApplicationContext(),
                    "SMS faild, please try again later!",
                    Toast.LENGTH_LONG).show();
                e.printStackTrace();
              }
              finish();

            }
        });
    }

    /*@Override
    public void onActivityResult(int reqCode, int resultCode, Intent data) {
            super.onActivityResult(reqCode, resultCode, data);

            switch (reqCode) {
                    case (PICK_CONTACT):
                            if (resultCode == Activity.RESULT_OK) {

                                //Uri uri = Uri.parse("smsto:" + textPhoneNo);
                                //Intent intent = new Intent(Intent.ACTION_SENDTO, uri);
                                    Uri contactData = data.getData();
                                    Cursor c = managedQuery(contactData, null, null, null, null);
                                    if (c.moveToFirst()) {
                                           final String name = c.getString(c.getColumnIndexOrThrow(People.NAME));
                                            textPhoneNo.setText(name);
                                    }
                            }
                            break;
            }
    }*/


     protected void onActivityResult(int requestCode,int resultCode,Intent data)
        {
            if(resultCode == RESULT_OK)
            {
                if(requestCode == RQS_PICKCONTACT)
                {
                    Uri returnUri = data.getData();
                    Cursor cursor = getContentResolver().query(returnUri, null, null, null, null);
                    if(cursor.moveToNext()){
                        int columnIndex_ID = cursor.getColumnIndex(ContactsContract.Contacts._ID);
                        String contactID = cursor.getString(columnIndex_ID);

                        int columnIndex_HASPHONENUMBER = cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER);
                        final String stringHasPhoneNumber = cursor.getString(columnIndex_HASPHONENUMBER);

                        if(stringHasPhoneNumber.equalsIgnoreCase("1")){
                            Cursor cursorNum = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
                                    null,
                                    ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "=" + contactID,null,null);

                            //Get the first phone number

                            if(cursorNum.moveToNext())
                            {
                                columnIndex_number = cursorNum.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER);
                                 final String stringNumber = cursorNum.getString(columnIndex_number);
                                phoneNo.setText(stringNumber);
                            }
                        }else{
                            phoneNo.setText("NO Phone Number");
                         }

                    }else{
                         Toast.makeText(getApplicationContext(), "NO data!", Toast.LENGTH_LONG).show();
                    }
                }
            }
        }


}
public class SendSmsActivity extends Activity {
Button buttonSend,get;
private static final int CONTACT_PICKER_RESULT = 1001;
EditText phoneNo;
EditText textSMS;
int columnIndex_number;
static String stringNumber;
String sms;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.send);
    phoneNo = (EditText)findViewById(R.id.editText1);
    textSMS = (EditText) findViewById(R.id.editText2);
    get = (Button) findViewById(R.id.button1);
    get.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
             Intent contactPickerIntent = new Intent(Intent.ACTION_PICK,
                    Contacts.CONTENT_URI);
            startActivityForResult(contactPickerIntent, CONTACT_PICKER_RESULT);


        }
        });
    buttonSend = (Button) findViewById(R.id.button2);    
    buttonSend.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v){
          try {

              String sms =  textSMS.getText().toString().trim();
                Toast.makeText(getApplicationContext(), phoneNo.getText().toString()+sms,
                        Toast.LENGTH_LONG).show();
            SmsManager smsManager = SmsManager.getDefault();
            smsManager.sendTextMessage(phoneNo.getText().toString(), null, sms, null, null);
            Toast.makeText(getApplicationContext(), "SMS Sent!",
                        Toast.LENGTH_LONG).show();

          } catch (Exception e) {
            Toast.makeText(getApplicationContext(),
                "SMS faild, please try again later!",
                Toast.LENGTH_LONG).show();
            e.printStackTrace();
          }


        }
    });
}

 @Override  
 protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
 if (resultCode == RESULT_OK) {  
    switch (requestCode) {  
    case CONTACT_PICKER_RESULT:

        Cursor cursor = null;  
        String phoneNumber = "";
        List<String> allNumbers = new ArrayList<String>();
        int phoneIdx = 0;
        try {  
            Uri result = data.getData();  
            String id = result.getLastPathSegment();  
            cursor = getContentResolver().query(Phone.CONTENT_URI, null, Phone.CONTACT_ID + "=?", new String[] { id }, null);  
            phoneIdx = cursor.getColumnIndex(Phone.DATA);
            if (cursor.moveToFirst()) {
                while (cursor.isAfterLast() == false) {
                    phoneNumber = cursor.getString(phoneIdx);
                    allNumbers.add(phoneNumber);
                    phoneNo.setText(cursor.getString(phoneIdx));

                    cursor.moveToNext();
                }
            } else {
                //no results actions
            }  
        } catch (Exception e) {  
           //error actions
        } finally {  
            if (cursor != null) {  
                cursor.close();
            } 
        }  
        break;  
    }  
} else {
   //activity result error actions
}  
}
}
公共类SendSmsActivity扩展活动{
按钮发送,获取;
专用静态最终int触点\u选择器\u结果=1001;
编辑文本电话号码;
编辑文本短信;
int列索引_数;
静态字符串字符串编号;
字符串短信;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.send);
phoneNo=(EditText)findViewById(R.id.editText1);
textSMS=(EditText)findViewById(R.id.editText2);
get=(按钮)findViewById(R.id.button1);
get.setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
//TODO自动生成的方法存根
Intent contactPickerIntent=新的Intent(Intent.ACTION\u PICK,
联系人。内容(URI);
startActivityForResult(联系人选取器内容、联系人选取器结果);
}
});
buttonSend=(按钮)findViewById(R.id.button2);
setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
试一试{
字符串sms=textSMS.getText().toString().trim();
Toast.makeText(getApplicationContext(),phoneNo.getText().toString()+sms,
Toast.LENGTH_LONG).show();
SmsManager SmsManager=smsmsmanager.getDefault();
smsManager.sendTextMessage(phoneNo.getText().toString(),null,sms,null,null);
Toast.makeText(getApplicationContext(),“SMS已发送!”,
Toast.LENGTH_LONG).show();
}捕获(例外e){
Toast.makeText(getApplicationContext(),
“短信失败,请稍后再试!”,
Toast.LENGTH_LONG).show();
e、 printStackTrace();
}
}
});
}
@凌驾
ActivityResult上受保护的void(int请求代码、int结果代码、意图数据){
如果(resultCode==RESULT_OK){
开关(请求代码){
案例联系人\u选取者\u结果:
游标=空;
字符串phoneNumber=“”;
List allNumbers=new ArrayList();
int phoneIdx=0;
试试{
Uri结果=data.getData();
字符串id=result.getLastPathSegment();
cursor=getContentResolver().query(Phone.CONTENT_URI,null,Phone.CONTACT_ID+“=?”,新字符串[]{ID},null);
phoneIdx=cursor.getColumnIndex(Phone.DATA);
if(cursor.moveToFirst()){
while(cursor.isAfterLast()==false){
phoneNumber=cursor.getString(phoneIdx);
添加(电话号码);
phoneNo.setText(cursor.getString(phoneIdx));
cursor.moveToNext();
}
}否则{
//无结果行动
}  
}捕获(例外e){
//错误操作
}最后{
如果(游标!=null){
cursor.close();
} 
}  
打破
}  
}否则{
//活动结果错误操作
}  
}
}
send.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
 <TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_marginTop="35dp"
    android:layout_toRightOf="@+id/button1"
    android:text="Phone No"
    android:textSize="25sp" />

  <EditText
    android:id="@+id/editText1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_marginTop="78dp"
    android:padding="20dp"
    android:ems="10" >

    <requestFocus />
   </EditText>

    <TextView
    android:id="@+id/textView2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="30dp"
    android:text="SMS Content"
    android:textSize="25sp" />
    <EditText
    android:id="@+id/editText2"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" 
    android:layout_marginTop="20dp"
    android:padding="20dp" />
    <LinearLayout 
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:orientation="horizontal" 
     android:paddingTop="20dp"
    >

    <Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginBottom="16dp"
    android:layout_marginLeft="34dp"
    android:text="Get" />

    <Button
    android:id="@+id/button2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="60dp"
    android:paddingLeft="20dp"
    android:text="Send" />

 </LinearLayout>
 </LinearLayout>

在清单中添加权限

  <uses-permission android:name="android.permission.READ_CONTACTS"/>
  <uses-permission android:name="android.permission.SEND_SMS" />

来自模拟器的快照。如果你需要发送短信,你将不得不使用真正的设备

如果数字之间有空格,可以修剪空格


您可以参考以下内容并对其进行修改。我在我的手机上测试过。请发布坠机的详细日志,我们只能猜测错误

您正在一个按钮单击中调用finish(),该按钮将完成活动。不知道你想做什么

MainActivity.java

public class SendSMSActivity extends Activity {
    public static final int RQS_PICKCONTACT    = 1; 
    Button buttonSend;
    //EditText textPhoneNo;
    EditText phoneNo;
    EditText textSMS;
    int columnIndex_number;
    static String stringNumber;
    String sms;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.about);

        buttonSend = (Button) findViewById(R.id.buttonSend);

        textSMS = (EditText) findViewById(R.id.editTextSMS);
        /*textPhoneNo = (EditText) findViewById(R.id.editTextPhoneNo);
        textPhoneNo.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                    Intent intent = new Intent(Intent.ACTION_PICK, People.CONTENT_URI);
                    startActivityForResult(intent, PICK_CONTACT);

                    //Uri uri = Uri.parse("smsto:" + textPhoneNo);
                    //Intent intent = new Intent(Intent.ACTION_SENDTO, uri);
            }
    });*/

        phoneNo = (EditText)findViewById(R.id.phoneNo);

        phoneNo.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            final Uri uriContact = ContactsContract.Contacts.CONTENT_URI;
            Intent intentPickContact = new Intent(Intent.ACTION_PICK, uriContact);
            startActivityForResult(intentPickContact, RQS_PICKCONTACT);
        }
        });



        /*Bundle extras = getIntent().getExtras();
        if(extras !=null) {
            String sms = extras.getString("firstKeyName");
        }*/


        Intent intent1= getIntent(); // gets the previously created intent
        final String firstKeyName = intent1.getStringExtra("firstKeyName");


        textSMS.setText(firstKeyName);


        buttonSend.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {

              //String phoneNo = textPhoneNo.getText().toString();




              try {
                SmsManager smsManager = SmsManager.getDefault();

                //String name = null;

                smsManager.sendTextMessage(stringNumber, null, firstKeyName, null, null);
                Toast.makeText(getApplicationContext(), "SMS Sent!",
                            Toast.LENGTH_LONG).show();
              } catch (Exception e) {
                Toast.makeText(getApplicationContext(),
                    "SMS faild, please try again later!",
                    Toast.LENGTH_LONG).show();
                e.printStackTrace();
              }
              finish();

            }
        });
    }

    /*@Override
    public void onActivityResult(int reqCode, int resultCode, Intent data) {
            super.onActivityResult(reqCode, resultCode, data);

            switch (reqCode) {
                    case (PICK_CONTACT):
                            if (resultCode == Activity.RESULT_OK) {

                                //Uri uri = Uri.parse("smsto:" + textPhoneNo);
                                //Intent intent = new Intent(Intent.ACTION_SENDTO, uri);
                                    Uri contactData = data.getData();
                                    Cursor c = managedQuery(contactData, null, null, null, null);
                                    if (c.moveToFirst()) {
                                           final String name = c.getString(c.getColumnIndexOrThrow(People.NAME));
                                            textPhoneNo.setText(name);
                                    }
                            }
                            break;
            }
    }*/


     protected void onActivityResult(int requestCode,int resultCode,Intent data)
        {
            if(resultCode == RESULT_OK)
            {
                if(requestCode == RQS_PICKCONTACT)
                {
                    Uri returnUri = data.getData();
                    Cursor cursor = getContentResolver().query(returnUri, null, null, null, null);
                    if(cursor.moveToNext()){
                        int columnIndex_ID = cursor.getColumnIndex(ContactsContract.Contacts._ID);
                        String contactID = cursor.getString(columnIndex_ID);

                        int columnIndex_HASPHONENUMBER = cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER);
                        final String stringHasPhoneNumber = cursor.getString(columnIndex_HASPHONENUMBER);

                        if(stringHasPhoneNumber.equalsIgnoreCase("1")){
                            Cursor cursorNum = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
                                    null,
                                    ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "=" + contactID,null,null);

                            //Get the first phone number

                            if(cursorNum.moveToNext())
                            {
                                columnIndex_number = cursorNum.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER);
                                 final String stringNumber = cursorNum.getString(columnIndex_number);
                                phoneNo.setText(stringNumber);
                            }
                        }else{
                            phoneNo.setText("NO Phone Number");
                         }

                    }else{
                         Toast.makeText(getApplicationContext(), "NO data!", Toast.LENGTH_LONG).show();
                    }
                }
            }
        }


}
public class SendSmsActivity extends Activity {
Button buttonSend,get;
private static final int CONTACT_PICKER_RESULT = 1001;
EditText phoneNo;
EditText textSMS;
int columnIndex_number;
static String stringNumber;
String sms;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.send);
    phoneNo = (EditText)findViewById(R.id.editText1);
    textSMS = (EditText) findViewById(R.id.editText2);
    get = (Button) findViewById(R.id.button1);
    get.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
             Intent contactPickerIntent = new Intent(Intent.ACTION_PICK,
                    Contacts.CONTENT_URI);
            startActivityForResult(contactPickerIntent, CONTACT_PICKER_RESULT);


        }
        });
    buttonSend = (Button) findViewById(R.id.button2);    
    buttonSend.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v){
          try {

              String sms =  textSMS.getText().toString().trim();
                Toast.makeText(getApplicationContext(), phoneNo.getText().toString()+sms,
                        Toast.LENGTH_LONG).show();
            SmsManager smsManager = SmsManager.getDefault();
            smsManager.sendTextMessage(phoneNo.getText().toString(), null, sms, null, null);
            Toast.makeText(getApplicationContext(), "SMS Sent!",
                        Toast.LENGTH_LONG).show();

          } catch (Exception e) {
            Toast.makeText(getApplicationContext(),
                "SMS faild, please try again later!",
                Toast.LENGTH_LONG).show();
            e.printStackTrace();
          }


        }
    });
}

 @Override  
 protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
 if (resultCode == RESULT_OK) {  
    switch (requestCode) {  
    case CONTACT_PICKER_RESULT:

        Cursor cursor = null;  
        String phoneNumber = "";
        List<String> allNumbers = new ArrayList<String>();
        int phoneIdx = 0;
        try {  
            Uri result = data.getData();  
            String id = result.getLastPathSegment();  
            cursor = getContentResolver().query(Phone.CONTENT_URI, null, Phone.CONTACT_ID + "=?", new String[] { id }, null);  
            phoneIdx = cursor.getColumnIndex(Phone.DATA);
            if (cursor.moveToFirst()) {
                while (cursor.isAfterLast() == false) {
                    phoneNumber = cursor.getString(phoneIdx);
                    allNumbers.add(phoneNumber);
                    phoneNo.setText(cursor.getString(phoneIdx));

                    cursor.moveToNext();
                }
            } else {
                //no results actions
            }  
        } catch (Exception e) {  
           //error actions
        } finally {  
            if (cursor != null) {  
                cursor.close();
            } 
        }  
        break;  
    }  
} else {
   //activity result error actions
}  
}
}
公共类SendSmsActivity扩展活动{
按钮发送,获取;
专用静态最终int触点\u选择器\u结果=1001;
编辑文本电话号码;
编辑文本短信;
int列索引_数;
静态字符串字符串编号;
字符串短信;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.send);
phoneNo=(EditText)findViewById(R.id.editText1);
textSMS=(EditText)findViewById(R.id.editText2);
get=(按钮)findViewById(R.id.button1);
get.setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
//TODO自动生成的方法存根
Intent contactPickerIntent=新的Intent(Intent.ACTION\u PICK,
联系人。内容(URI);
startActivityForResult(联系人选取器内容、联系人选取器结果);
}
});
buttonSend=(按钮)findViewById(R.id.button2);
setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
试一试{
字符串sms=textSMS.getText().toString().trim();
Toast.makeText(getApplicationContext(),phoneNo.getText().toString()+sms,
Toast.LENGTH_LONG).show();
SmsManager SmsManager=smsmsmanager.getDefault();
smsManag