美文网首页好玩的代码
自动拨打电话 - 好玩的代码

自动拨打电话 - 好玩的代码

作者: 野狗道人闯红灯 | 来源:发表于2017-04-06 11:47 被阅读190次

有一次忘记是什么情况和女朋友闹了矛盾,女朋友就是不接我电话,当时我也有点不高兴不接我就一直打,打了半天还是不接。我就想啊,写个Android程序装在手机上自动打!

思路

当时说写马上就写出来了,因为这个的思路特别简单,就是写一个打电话的代码,然后让这段代码循环调用就好了。

实现

** 写好拨打电话的权限 **

    <uses-permission android:name="android.permission.CALL_PHONE"/>

** 写好布局,包括电话号码、开始暂停按钮和提示 **

<?xml version="1.0" encoding="utf-8"?>
<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="wrap_content"
    android:orientation="vertical"
    android:gravity="center_horizontal"
    tools:context="top.glimpse.constantcall.MainActivity">

    <EditText
        android:id="@+id/phonenumber"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="电话号码"/>

    <Button
        android:id="@+id/btn_call"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="开始"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="设定:一分钟打一次" />

</LinearLayout>

** 连续拨打电话的处理 **

拨打电话的代码就两行。

Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + number));
startActivity(intent);

但是要处理一下开始和停止的逻辑。这里把连续拨打电话的逻辑放在线程里,点击了开始按钮的时候就开始走连续拨打电话的逻辑,使用全局变量isCall来控制线程的结束。当用户点击停止的时候,破坏掉循环,线程死掉。再次点击开始的时候,再次启动一个连续拨打线程。

代码全在下面。

public class MainActivity extends AppCompatActivity {

    private boolean isCall = false;

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

        final Button btn_call = (Button) findViewById(R.id.btn_call);
        btn_call.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                isCall = !isCall;
                btn_call.setText(isCall ? "停止" : "开始");

                if (isCall) {
                    new Thread(new Runnable() {
                        @Override
                        public void run() {
                            constantCall();
                        }
                    }).start();
                }
            }
        });
    }

    private void constantCall() {
        EditText et_phonenumber = (EditText) findViewById(R.id.phonenumber);
        String number = et_phonenumber.getText().toString();
        //用intent启动拨打电话
        while(isCall) {
            if (!number.equals("")) {
                Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + number));
                startActivity(intent);
            }
            try {
                Thread.sleep(1000 * 60);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}

最后

好吧,是一个用几行代码写出来的有点意思的东西。当然,后来跟女朋友说起这件事的时候,女朋友笑着说,程序员真可怕。

欢迎关注【Funny新青年】微信公众号~

相关文章

  • 自动拨打电话 - 好玩的代码

    有一次忘记是什么情况和女朋友闹了矛盾,女朋友就是不接我电话,当时我也有点不高兴不接我就一直打,打了半天还是不接。我...

  • 拨打电话

    使用这种方式拨打电话时,可以使得用户结束通话后自动返回到应用: 使用这种方式拨打电话时,直接拨打且不能自动返回到应...

  • iOS-WKWebView拨打电话号码

    h5的拨打电话代码是 // 处理拨打电话以及Url跳转等等

  • iOS 拨打电话代码

    1,这种方法,拨打完电话不能自动返回原来的应用,会停留在通讯录里,而且是直接拨打,不弹出提示 2,这种方法,打完电...

  • 拨打电话(Swift版本)

    注:下面的这种方法,很简单,两行代码就搞定了,更重要的是拨打完电话后,会自动的回到App原来的页面中!!! 代码如...

  • iOS拨打电话

    iOS 拨打电话常用2中方法,以下是代码

  • iOS开发小知识备忘录

    代码备忘: 1、点击空白处,收起键盘 2、拨打电话

  • ios 打电话

    ios调用拨打电话功能有3种实现方法,依次代码如下:

  • iOS开发之调用系统拨号时,解决弹出框延时弹出问题

    项目开发中难免遇到需要调用到系统自动拨号功能,即存在的电话号码,点击后就能自动跳转到拨打电话的界面,那如何...

  • iOS 跳转到系统的设置界面

    一、如何代码实现跳转safari,phone或message? 调用 电话phonea.拨打完电话回不到原来的应用...

网友评论

  • Silence潇湘夜雨:嗯,应该加上接通以后,立刻自动断开。
    Silence潇湘夜雨:@野狗道人 那不就不能循环拨打电话了嘛,放到服务里面去,再加一个守护线程,然后再隐藏号码,嗯,怎么画风有点变了。
    野狗道人闯红灯:可以可以,当时根本就没打通,也没想到这问题。为了省劲可以直接把软件关了。
  • 希尔大:也就我看看。。
    野狗道人闯红灯:@Henvealf 。。。。。简书都是标题党
    希尔大: @野狗道人 可以改改标题。比如,无聊程序员在家写爬虫,竟然发现了如此羞羞的网站。
    野狗道人闯红灯:我也没投稿,别人都看不到,除非有人搜索搜到了。

本文标题:自动拨打电话 - 好玩的代码

本文链接:https://www.haomeiwen.com/subject/exbfattx.html