繁体   English   中英

如何在Android中发送短信

[英]how to Sending sms in android

我正在使用短信开发应用程序,我的要求是1)发送具有静态值的短信2)每当我们单击编辑按钮时,我们都可以更改值并发送短信,我可以成功完成这两个操作,但是我的第三个要求是仅发送短信当单击编辑和更改值时,单击提交按钮,而没有更改值,我不希望发送短信。 我想当单击编辑按钮时仅发送短信,我尝试了if(editBtn.isSelected),但它不起作用。 请告诉任何解决方案

我的代码是

xml文件

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:paddingBottom="@dimen/activity_vertical_margin"
  android:paddingLeft="@dimen/activity_horizontal_margin"
  android:paddingRight="@dimen/activity_horizontal_margin"
  android:paddingTop="@dimen/activity_vertical_margin"
  tools:context=".MainActivity"
  android:orientation="vertical" >

  <Button android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:id="@+id/editBtn"
       android:text="EDIT"
       android:textColor="#00FF00"
       android:onClick="editListener"/>
  <LinearLayout android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:orientation="horizontal">
   <TextView android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:text="NUMBER"
             android:textSize="20dip"/>
   <EditText android:layout_width="150dip"
             android:layout_height="wrap_content"
             android:id="@+id/numberEdit"
             android:text="8989897979"
             android:clickable="false" 
             android:cursorVisible="false" 
             android:focusable="false" 
             android:focusableInTouchMode="false"
             />
  </LinearLayout>
  <LinearLayout android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:orientation="horizontal">
   <TextView android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:text="MESSAGE"
             android:textSize="20dip"/>
   <EditText android:layout_width="150dip"
             android:layout_height="wrap_content"
             android:id="@+id/messageEdit"
             android:text="HAI HOW R U"
             android:clickable="false" 
             android:cursorVisible="false" 
             android:focusable="false" 
             android:focusableInTouchMode="false"
             />

   </LinearLayout>
    <Button android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:id="@+id/subBtn"
           android:text="SUBMIT"/>
  </LinearLayout>

活动

public class MainActivity extends Activity {

private EditText contactEdit;
private EditText messageEdit;
private Button  submitBtn;
private Button  editBtn;

String contact;
String message;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    contactEdit = (EditText)findViewById(R.id.numberEdit);
    messageEdit = (EditText)findViewById(R.id.messageEdit);
    submitBtn   = (Button)findViewById(R.id.subBtn);
    editBtn     = (Button)findViewById(R.id.editBtn);

    if(editBtn.isSelected()){
    submitBtn.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub

            contact = contactEdit.getText().toString();
            message = messageEdit.getText().toString();

            try{
                SmsManager manger = SmsManager.getDefault();

                manger.sendTextMessage(contact, null, message, null, 
                                    null);
                Toast.makeText(getApplicationContext(), "SMS SENT", 
                              100).show();
            }
            catch(Exception e){

                Toast.makeText(getApplicationContext(), "SMS NOT          
                            SEND", 100).show();
                e.printStackTrace();

            }

        }
    });
    }
    else {
        Toast.makeText(getApplicationContext(), "NOT EDITED", 100).show();
    }
    editBtn.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            changeEdit();

        }
    });
}


private void changeEdit(){
    contactEdit.setClickable(true);
    contactEdit.setCursorVisible(true);
    contactEdit.setFocusable(true);
    contactEdit.setFocusableInTouchMode(true);
    messageEdit.setClickable(true);
    messageEdit.setCursorVisible(true);
    messageEdit.setFocusable(true);
    messageEdit.setFocusableInTouchMode(true);
}

 }

尝试对编辑文本使用OnTouchListener

样品,

  editBtn.setOnTouchListener(new OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {
            // TODO Auto-generated method stub

                           changeEdit();

            return true;
        }
    });

如果它不起作用

在全局范围内创建一个布尔变量,如果您触摸了edittext,则将其设为true,

//在杂种

 boolean e_clicked = false;

//在Edittext的onTouchListener内部

 e_clicked=true;

并检查

 if(e_clicked)
 {
 // your sms send action
 }

尝试这个

     public class AlarmReceiver extends BroadcastReceiver {
    public void onReceive(Context context, Intent intent) {
    @Override
    public void onReceive(Context context, Intent intent) {
    Intent intent=new Intent(context,Service.class);
    //get lat/lng and pass it or get from service if u want
    intent.putExtra("lat","lat");
    intent.putExtra("lon","lng");
    context.startService(intent);

}  
    }

    public void SetAlarm(Context context) {

        AlarmManager am = (AlarmManager) context
                .getSystemService(Context.ALARM_SERVICE);
        Intent i = new Intent(context, AlarmReceiver.class);
        PendingIntent pi = PendingIntent.getBroadcast(context, 0, i, 0);
         Calendar calendar = Calendar.getInstance();

           calendar.setTimeInMillis(System.currentTimeMillis());

           calendar.add(Calendar.MINUTE, 10);
           am.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(),
                calendar.getTimeInMillis(), pi);
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM