1. android 开发 一个通过服务端内容自动发送短信到指定号码
调用系统的发送短信界面,只需向系统发送一个Intent,并附带相关参数就可以了,下面以一个仿差demo说明。
类似下图的界面
activity_main.xml
[html] view plain
<RelativeLayout 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" >
<Button
android:id="@+id/btn_send"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginRight="@dimen/padding_small"
android:gravity="center"
android:paddingLeft="@dimen/padding_small"
android:paddingRight="@dimen/padding_small"
android:text="@string/btn_send" />
<EditText
android:id="@+id/edit_phone_number"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignBottom="@id/btn_send"
android:layout_marginLeft="@dimen/padding_small"友悔
android:layout_marginRight="@dimen/padding_small"
android:layout_toLeftOf="@id/btn_send"
android:hint="@string/edittext_hint"
android:inputType="phone"
android:paddingLeft="@dimen/padding_small" />
</RelativeLayout>
然后在MainActivity中编写相应的java代码就可以了,操作很简单,在EditText中输入号码,然后点击Send,就跳到系统发备告皮送短信界面,并且接收人一栏里填入号码。相关的代码如下:
获取控件,响应Button的点击事件:
[java] view plain
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mEditText = (EditText) findViewById(R.id.edit_phone_number);
mButton = (Button) findViewById(R.id.btn_send);
mButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String phoneNumber = mEditText.getText().toString();
if (!TextUtils.isEmpty(phoneNumber)) {
sendSmsWithNumber(MainActivity.this, phoneNumber);
}
}
});
}
向指定号码发送短信:
[java] view plain
/**
* 调用系统界面,给指定的号码发送短信
*
* @param context
* @param number
*/
public void sendSmsWithNumber(Context context, String number) {
Intent sendIntent = new Intent(Intent.ACTION_SENDTO, Uri.parse("smsto:" + number));
context.startActivity(sendIntent);
}
这样点击Send后,就会跳转到系统短信界面了,并且接收人一栏里就是刚才你填写的号码。
同理,要想调用系统发送短信界面后附加短信内容和以上是类似的,只需在Intent中附带相关的参数就可以了。
[java] view plain
/**
* 调用系统界面,给指定的号码发送短信,并附带短信内容
*
* @param context
* @param number
* @param body
*/
public void sendSmsWithBody(Context context, String number, String body) {
Intent sendIntent = new Intent(Intent.ACTION_SENDTO);
sendIntent.setData(Uri.parse("smsto:" + number));
sendIntent.putExtra("sms_body", body);
context.startActivity(sendIntent);
}
2. 如何屏蔽短信界面,在后台发短信
要实现这个功能,在后台发送短信,这个功能用户无法感知,是一个不好的东东,但是如果加上界面上的提示的话,也还是可行的。
1.第一种很简单,就是使用intent跳转到系统自带发短信的界面,然后由用户点击Send。
2.第二种方法就是本文所说的,其实很简单,使用SmsManager这个类就可以简单实现。
3. Android开发,各位大神谁知道怎么在后台发Email或发短信,不用跳转到系统界面,感激不尽!
邮件可以使用java mail api, 发短信就直接调用Android api SmsManager.sendMessage()就行