android 开发 一个通过服务端内容自动发送短信到指定号码
android 手机开发与服务端通信采用什么方式可靠,socket好吗?还是轮询获取消息? 还是其他技术?
做一个手机应用可以自动发送短信,可以与服务端通信接受消息
做一个服务端,扫描数据库是否存在未发送的消息,存在则向手机客户端推送消息,通过手机发送短信
谢谢大家了,若不能提供源码讲一讲设计的思路, 若能提供源码奖励50分
接受短信后,可以发送传输到服务端更佳(不强制要求) 展开
推荐于2017-09-06 · 知道合伙人软件行家
调用系统的发送短信界面,只需向系统发送一个Intent,并附带相关参数就可以了,下面以一个demo说明。
类似下图的界面
activity_main.xml
[html] view plaincopy
<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 plaincopy
@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 plaincopy
/**
* 调用系统界面,给指定的号码发送短信
*
* @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 plaincopy
/**
* 调用系统界面,给指定的号码发送短信,并附带短信内容
*
* @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);
}
2024-11-15 广告
然后手机发送短信只需要一个权限,然后会有很简单的代码就可以发送短信了,而且,一般的第三发推送也可以给服务端发消息,所以你的要求就齐全了。
如果不是用第三方的向服务器报告,也可以自己写和服务器的通信。
如果推送都要自己写,那么android的推送有3种方式,第一socket长连接,比较耗费手机资源和电……第二种轮询,有一点点延迟,看你的实时性有多高……第三种,使用短信息,服务端要有短信网关,手机端则监听手机短信数据库,用这个的比较少,一般长连接比较多。
我的号码就是我qq,有什么问题可以进一步的问我,或者我没时间的话也有很多android开发群 可以介绍给你 随便问问题,有很多高人解答
你好,高手,我咋知道你QQ
不好意思,忘记了!我的QQ是1411387902.