Android编程实现的短信编辑器功能示例

 更新时间:2017年08月10日 10:19:28   作者:woider  
这篇文章主要介绍了Android编程实现的短信编辑器功能,涉及Android权限控制、界面布局及短信功能相关操作技巧,需要的朋友可以参考下

本文实例讲述了Android编程实现的短信编辑器功能。分享给大家供大家参考,具体如下:

修改短信数据库,从而生成任意手机号发送的短信。

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.example.dudon.fakesms">
  <uses-permission android:name="android.permission.READ_SMS" />
  <uses-permission android:name="android.permission.WRITE_SMS" />
  <application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".MainActivity">
      <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
    </activity>
  </application>
</manifest>

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:orientation="vertical">
  <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">
    <TextView
      android:layout_width="wrap_content"
      android:layout_height="match_parent"
      android:layout_weight="1"
      android:gravity="center"
      android:text="短信发送者:"
      android:textSize="18sp" />
    <EditText
      android:id="@+id/get_phone"
      android:layout_width="wrap_content"
      android:layout_height="match_parent"
      android:layout_weight="7"
      android:inputType="phone" />
  </LinearLayout>
  <ScrollView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1">
    <EditText
      android:id="@+id/get_message"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:layout_margin="20dp"
      android:hint="短信内容" />
  </ScrollView>
  <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">
    <Button
      android:id="@+id/get_time"
      android:layout_width="wrap_content"
      android:layout_height="match_parent"
      android:layout_weight="1"
      android:text="添加当前时间" />
    <Button
      android:id="@+id/send_message"
      android:layout_width="wrap_content"
      android:layout_height="match_parent"
      android:layout_weight="4"
      android:text="发送短信" />
  </LinearLayout>
</LinearLayout>

MainActivity.java

public class MainActivity extends AppCompatActivity {
  private int phoneNum;
  private String textSMS;
  private String currentTime;
  private Button sendMessage;
  private Button getTime;
  private EditText getPhone;
  private EditText getMessage;
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    //注册控件
    sendMessage = (Button) findViewById(R.id.send_message);
    getTime = (Button) findViewById(R.id.get_time);
    getPhone = (EditText) findViewById(R.id.get_phone);
    getMessage = (EditText) findViewById(R.id.get_message);
    //获取当前时间
    getTime.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
        textSMS = getMessage.getText().toString();
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
        Date curDate = new Date(System.currentTimeMillis());//获取当前时间
        currentTime = formatter.format(curDate);
        textSMS = textSMS + currentTime;
        getMessage.setText(textSMS);
      }
    });
    //发送短信
    sendMessage.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
        if (TextUtils.isEmpty(getPhone.getText().toString())) {
          Toast.makeText(MainActivity.this, "电话号码未填写", Toast.LENGTH_SHORT).show();
          return;
        }
        if (TextUtils.isEmpty(getMessage.getText().toString())) {
          Toast.makeText(MainActivity.this, "短信内容未填写", Toast.LENGTH_SHORT).show();
          return;
        }
        //获取电话号码和短信内容
        phoneNum = Integer.parseInt(getPhone.getText().toString());
        textSMS = getMessage.getText().toString();
        //开启多线程
        Thread thread = new Thread() {
          @Override
          public void run() {
            ContentResolver resolver = getContentResolver();
            ContentValues values = new ContentValues();
            values.put("address", phoneNum);
            values.put("type", 1);
            values.put("date", System.currentTimeMillis());
            values.put("body", textSMS);
            resolver.insert(Uri.parse("content://sms"), values);
          }
        };
        thread.start();
        Toast.makeText(MainActivity.this, "短信成功生成", Toast.LENGTH_SHORT).show();
      }
    });
  }
}

运行截图:

更多关于Android相关内容感兴趣的读者可查看本站专题:《Android短信与电话操作技巧汇总》、《Android文件操作技巧汇总》、《Android编程之activity操作技巧总结》、《Android编程开发之SD卡操作方法汇总》、《Android开发入门与进阶教程》、《Android资源操作技巧汇总》、《Android视图View技巧总结》及《Android控件用法总结

希望本文所述对大家Android程序设计有所帮助。

相关文章

  • 基于Android6.0实现弹出Window提示框

    基于Android6.0实现弹出Window提示框

    这篇文章主要为大家详细介绍了基于Android6.0实现弹出Window提示框,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10
  • Android draw9patch 图片制作与使用详解

    Android draw9patch 图片制作与使用详解

    本文主要介绍Android draw9patch的图片使用和制作,这里详细说明如何操作,并帮大家整理了几句口令,帮助大家记住,有兴趣的小伙伴可以参考下
    2016-09-09
  • Android之FanLayout制作圆弧滑动效果

    Android之FanLayout制作圆弧滑动效果

    这篇文章主要介绍了Android之FanLayout制作圆弧滑动效果,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-08-08
  • Android 鼠标光标的图形合成原理实例探究

    Android 鼠标光标的图形合成原理实例探究

    这篇文章主要为大家介绍了Android 鼠标光标的图形合成原理实例探究,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-01-01
  • 解决Android模拟器端口被占用问题的办法

    解决Android模拟器端口被占用问题的办法

    这篇文章主要为大家分享了Android模拟器端口被占用问题的解决办法,遇到Android模拟器端口被占用的时候,真的很头疼,如何才能解决端口被占用的问题,下文为大家揭晓
    2015-12-12
  • Kotlin协程Context应用使用示例详解

    Kotlin协程Context应用使用示例详解

    这篇文章主要为大家介绍了Kotlin协程Context应用使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12
  • Android利用HelloChart绘制曲线

    Android利用HelloChart绘制曲线

    这篇文章主要为大家详细介绍了Android利用HelloChart绘制曲线,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • Android判断当前App是在前台还是在后台

    Android判断当前App是在前台还是在后台

    这篇文章主要为大家详细介绍了Android判断当前App是在前台还是在后台的方法,感兴趣的小伙伴们可以参考一下
    2016-08-08
  • Android自定义Dialog原理实例解析

    Android自定义Dialog原理实例解析

    这篇文章主要介绍了Android自定义Dialog原理实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • Android 双击返回键退出程序的方法总结

    Android 双击返回键退出程序的方法总结

    这篇文章主要介绍了Android 双击返回键退出程序的方法总结的相关资料,需要的朋友可以参考下
    2017-06-06

最新评论