Android实现打电话,发短信

一,需求

  1. 点击“打电话”进入拨号界面

  1. 长按“打电话”直接拨打电话

  1. 点击“发短信”进入编辑短信界面

  1. 长按“发短信”直接将短信发送出去

二,代码模块

  1. AndroidManifest

<!--打电话的权限 -->
    <uses-permission android:name="android.permission.CALL_PHONE"/>
    <!--发短信的权限 -->
    <uses-permission android:name="android.permission.SEND_SMS"/>
  1. MainActivity

//初始化需要操作的视图对象
    private EditText edit_main_number;
    private EditText edit_main_sms;
    private Button btn_main_call;
    private Button btn_main_send;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //得到视图对象
        edit_main_number = (EditText) findViewById(R.id.edit_main_number);
        edit_main_sms = (EditText) findViewById(R.id.edit_main_sms);
        btn_main_call = (Button) findViewById(R.id.btn_main_call);
        btn_main_send = (Button) findViewById(R.id.btn_main_send);

        //给视图对象设置点击监听(点击跳转到拨号界面)
        btn_main_call.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //String action = "android.intent.action.DIAL";
                String action = Intent.ACTION_DIAL;//与上面效果相同
                //1.创建一个Intent(隐式)
                Intent intent = new Intent(action);
                //2.携带数据(两种方式)
                //intent.putExtra();
                String number = edit_main_number.getText().toString();
                intent.setData(Uri.parse("tel:" + number));
                //3.startActivity(intent)
                startActivity(intent);
            }
        });

        //给视图对象设置点击监听(点击跳转到编辑短信界面)
        btn_main_send.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(Intent.ACTION_SENDTO);
                //携带数据
                String number = edit_main_number.getText().toString();//号码
                String sms = edit_main_sms.getText().toString();//内容
                intent.setData(Uri.parse("smsto:" + number));//携带号码
                //携带额外数据
                intent.putExtra("sms_body", sms);

                startActivity(intent);
            }
        });


        //长按打电话
        if (ActivityCompat.checkSelfPermission(MainActivity.this, Manifest.permission.CALL_PHONE) !=
                PackageManager.PERMISSION_GRANTED) {
            ActivityCompat.requestPermissions(MainActivity.this, new String[]{
                    Manifest.permission.CALL_PHONE}, 1);
        } else {
            //给视图对象设置长按监听(长按打电话)
            btn_main_call.setOnLongClickListener(new View.OnLongClickListener() {
                @Override
                public boolean onLongClick(View view) {
                    Intent intent = new Intent(Intent.ACTION_CALL);

                    String number = edit_main_number.getText().toString();
                    intent.setData(Uri.parse("tel:" + number));

                    startActivity(intent);
                    return true;
                }
            });
        }

        //长按发短信
        if (ActivityCompat.checkSelfPermission(MainActivity.this, Manifest.permission.SEND_SMS) != PackageManager.PERMISSION_GRANTED) {
            ActivityCompat.requestPermissions(MainActivity.this, new String[]{
                    Manifest.permission.SEND_SMS}, 1);
        } else {
            //给视图对象设置长按监听(长按发短信)
            btn_main_send.setOnLongClickListener(new View.OnLongClickListener() {
                @Override
                public boolean onLongClick(View view) {
                    //1.得到SmsManager的对象
                    SmsManager smsManager = SmsManager.getDefault();
                    //2.发送文本信息短信
                    String number = edit_main_number.getText().toString();//号码
                    String sms = edit_main_sms.getText().toString();//内容
                    smsManager.sendTextMessage(number, null, sms, null, null);
                    Toast.makeText(MainActivity.this, "发送成功", Toast.LENGTH_SHORT).show();
                    return true;
                }
            });
        }
  1. activity_main.xml

 <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="电话号码:" />

        <EditText
            android:id="@+id/edit_main_number"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:hint="请输入电话号码"/>
    </LinearLayout>


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="短信内容:" />

        <EditText
            android:id="@+id/edit_main_sms"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:hint="请输入短信内容" />
    </LinearLayout>


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
    <Button
        android:id="@+id/btn_main_call"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="打电话" />

        <Button
            android:id="@+id/btn_main_send"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="发短信" />
    </LinearLayout>

三,演示效果

点击“打电话”:

其他效果自行测试!

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 新闻app是一种基于移动应用开发技术的应用程序,旨在向用户提供实时、全面和多样化的新闻内容。在开发新闻app时,需要考虑以下几个方面。 首先,用户界面设计是关键。我们需要设计一个直观、简洁和易于导航的用户界面,使用户可以轻松浏览和选择感兴趣的新闻。 其次,数据获取和处理是新闻app的重要组成部分。我们可以通过抓取各种新闻网站的API接口来获取新闻数据,然后对数据进行处理和筛选,以保证新闻的及时性和准确性。 第三,推荐算法是提高用户体验的关键。通过分析用户的浏览历史和兴趣偏好,我们可以利用推荐算法提供个性化的新闻推荐,使用户更容易找到感兴趣的内容。 另外,用户交互和社交功能也是一个重要考虑因素。我们可以添加评论和分享功能,让用户可以与其他用户交流和分享对新闻的看法。 最后,移动端的性能和稳定性是始终需要关注的问题。我们需要确保新闻app在各种不同的移动设备上都能流畅运行,并保持稳定的运行状态。 总结来说,开发一个新闻app需要综合运用移动应用开发技术,包括用户界面设计、数据获取和处理、推荐算法、用户交互和社交功能以及移动端性能优化等方面。只有在这些方面都做到优秀,才能提供给用户一个高质量和全面的新闻阅读体验。 ### 回答2: 新闻App是一种移动应用开发技术的大作业,它旨在为用户提供即时、多样化的新闻内容。在开发这个App的过程中,我们将使用如下技术和方法: 首先,我们将采用多平台开发技术,如React Native,以便在多个移动平台上发布我们的App,包括iOS和安卓。通过使用React Native,我们可以使用相同的代码库来开发适用于多个平台的应用程序,从而显着减少开发时间和成本。 其次,我们将使用数据API来获取新闻信息。这些API可以从各种新闻源获取数据,包括新闻机构的网站和社交媒体平台。我们可以使用类似于NewsAPI的API来获取新闻的标题、摘要和链接,以及相关的图片和视频。 此外,我们还将实现用户个性化推荐功能。通过分析用户的兴趣和偏好,我们可以为他们提供最相关和感兴趣的新闻。我们将使用机器学习算法来构建用户兴趣模型,并将其应用于推荐引擎中。 此外,我们还将实现分享和评论功能,用户可以将感兴趣的新闻分享到社交媒体平台,与其他用户进行互动,提供自己的观点和评论。 最后,我们将考虑使用广告来获得收益。我们可以将广告插入到新闻内容中,同时确保广告与用户的兴趣相关。这可以通过分析用户的浏览历史和兴趣模型来实现。 总结一下,我们的新闻App将利用多平台开发技术,使用数据API获取新闻信息,实现个性化推荐功能,并考虑使用广告来获得收益。通过这些技术和方法,我们将开发一个功能强大、用户友好的新闻App,为用户提供丰富、有趣的新闻内容。 ### 回答3: 移动应用开发技术大作业是一个新闻APP的开发项目,我们的目标是设计和开发一款功能全面、用户友好的新闻应用程序。 首先,我们将通过市场调研和用户需求分析来确定我们的目标用户群体,并了解他们对新闻APP的需求。接下来,我们将进行用户界面设计,确保界面简洁明了,操作流畅。我们将采用响应式设计,以适应不同屏幕大小和设备类型。 我们将开发一个强大的后台系统来管理新闻内容。这个系统将包括新闻发布、编辑、删除等功能,同时也能够对新闻进行分类、标签和关键词的管理,以便用户能够轻松地找到他们感兴趣的内容。 在前端开发方面,我们将使用HTML5、CSS3和JavaScript来开发用户界面。我们还将使用一些流行的移动应用开发框架,如React Native或Flutter来加快开发速度并提高用户体验。 我们将为用户提供丰富多样的新闻内容,包括时政、财经、体育、娱乐等领域。我们将通过与新闻机构合作获取最新的新闻动态,并通过推送通知功能向用户发送重要的新闻和更新。 此外,我们将添加一些额外的功能来增加用户的参与度和活跃度。例如,用户可以评论和分享新闻,并与其他用户进行互动。我们还将提供个性化的推荐功能,根据用户的阅读历史和兴趣推荐相关新闻。 最后,我们将进行充分的测试和优化,以确保我们的应用程序在不同的设备和网络环境下都能稳定运行,同时也能保护用户的隐私和数据安全。 通过以上的技术和功能,我们设计开发的新闻APP将能够满足用户的需求,为他们提供优质的新闻内容和良好的使用体验,帮助他们更全面地了解世界。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力学习的小西瓜

谢谢您,小西瓜会继续努力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值