android 开发 一个通过服务端内容自动发送短信到指定号码

我没有做过android手机应用开发,目前由于系统需要发送短信,现在想通过,android手机应用发送android手机开发与服务端通信采用什么方式可靠,socket好吗... 我没有做过android手机应用开发,目前由于系统需要发送短信,现在想通过, android手机应用发送
android 手机开发与服务端通信采用什么方式可靠,socket好吗?还是轮询获取消息? 还是其他技术?
做一个手机应用可以自动发送短信,可以与服务端通信接受消息
做一个服务端,扫描数据库是否存在未发送的消息,存在则向手机客户端推送消息,通过手机发送短信
谢谢大家了,若不能提供源码讲一讲设计的思路, 若能提供源码奖励50分
接受短信后,可以发送传输到服务端更佳(不强制要求)
展开
 我来答
08物理
推荐于2017-09-06 · 知道合伙人软件行家
08物理
知道合伙人软件行家
采纳数:1141 获赞数:4137
1、国内上市公司资深运维工程师、产品经理 2、百度芝麻将,认证管理员

向TA提问 私信TA
展开全部

调用系统的发送短信界面,只需向系统发送一个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 广告
广告机代理优选容大彩晶,深圳市容大彩晶科技有限公司自2007年成立伊始,一直专注于液晶商用显示产品的技术研发及产品服务。公司依托具有自主研发能力、创新高效的技术团队,打造出行业优质商用液晶显示设备。容大彩晶产品涵盖商用液晶显示、多媒体广告机... 点击进入详情页
本回答由深圳市容大彩晶科技有限公司提供
314659476
2014-11-22 · TA获得超过1836个赞
知道大有可为答主
回答量:2162
采纳率:66%
帮助的人:566万
展开全部
服务器和手机端通信,如果要实时通信,就需要使用推送,自己写的推送一般不够好,还是使用专业推送比较好,国内的可以使用极光推送,百度推送等等,如果是国际的可以使用谷歌的google cloud message,或者使用友盟……友盟还是比较靠谱的。

然后手机发送短信只需要一个权限,然后会有很简单的代码就可以发送短信了,而且,一般的第三发推送也可以给服务端发消息,所以你的要求就齐全了。

如果不是用第三方的向服务器报告,也可以自己写和服务器的通信。

如果推送都要自己写,那么android的推送有3种方式,第一socket长连接,比较耗费手机资源和电……第二种轮询,有一点点延迟,看你的实时性有多高……第三种,使用短信息,服务端要有短信网关,手机端则监听手机短信数据库,用这个的比较少,一般长连接比较多。

我的号码就是我qq,有什么问题可以进一步的问我,或者我没时间的话也有很多android开发群 可以介绍给你 随便问问题,有很多高人解答
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
邦交WINNER
2014-11-17 · TA获得超过122个赞
知道答主
回答量:126
采纳率:0%
帮助的人:48.2万
展开全部
加我QQ,我发给你,但是希望你加我的时候请备注,以免被我忽略!希望点赞!
追问
你好,高手,我咋知道你QQ
追答
不好意思,忘记了!我的QQ是1411387902.
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式