android之简单发短信

今天想把之前的android基础好好整理一下,没想到写这么简单的代码居然也会出问题尴尬

1.首先来个布局文件:main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <RelativeLayout
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
    >
		<TextView  
		    android:layout_width="wrap_content" 
		    android:layout_height="wrap_content" 
		    android:text="@string/number"
		    android:id="@+id/numberlabel"
		    />
		<EditText
			android:layout_width="fill_parent" 
		    android:layout_height="wrap_content" 
		    android:phoneNumber="true"
		    android:layout_toRightOf="@id/numberlabel"
		    android:layout_alignTop="@id/numberlabel"
		    android:hint="请输入号码"
		    android:paddingLeft="60dp"
		    android:layout_marginLeft="8dp"
		    android:id="@+id/number"
		    />
		<TextView  
		    android:layout_width="wrap_content" 
		    android:layout_height="wrap_content" 
		    android:text="@string/number"
		    android:textSize="26sp"
		    android:textColor="#0066CC"
		    android:paddingLeft="2dp"
		    android:layout_alignTop="@id/number"
		     android:layout_alignLeft="@id/number"
		      android:layout_alignBottom="@id/number"
		    />
	 </RelativeLayout>   
	    
	    
	<TextView  
	    android:layout_width="fill_parent" 
	    android:layout_height="wrap_content" 
	    android:text="@string/content"
	    />
	<EditText
		android:layout_width="fill_parent" 
	    android:layout_height="wrap_content"
	    android:minLines="3"
	    android:id="@+id/content"
	    />	    
	<Button
		android:layout_width="wrap_content" 
	    android:layout_height="wrap_content"
	    android:text="@string/button"
	    android:id="@+id/button"
	    />
</LinearLayout>
2.清单文件:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="cn.ccy.com"
      android:versionCode="1"
      android:versionName="1.0">
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".MainActivity"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>
<uses-sdk android:minSdkVersion="8" />
<!-- 发短信权限 -->
	<uses-permission android:name="android.permission.SEND_SMS"/>

</manifest> 

3 MainActivity.java

package cn.ccy.com;

import java.util.ArrayList;

import android.app.Activity;
import android.os.Bundle;
import android.telephony.SmsManager;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity {
	/** Called when the activity is first created. */
	EditText et_number;
	EditText et_sms;
	Button btn_send;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		et_number = (EditText) findViewById(R.id.et_number);
		et_sms = (EditText) findViewById(R.id.et_sms);
		btn_send = (Button) findViewById(R.id.btn_send);
		btn_send.setOnClickListener(new View.OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				String number = et_number.getText().toString();// 发送的电话号码
				String sms = et_sms.getText().toString();// 短信内容
				SmsManager manager = SmsManager.getDefault();
				//因为一条短信有字数限制,因此要将长短信拆分
				ArrayList<String> divideMessage = manager.divideMessage(sms);
				for (String text : divideMessage) {
					manager.sendTextMessage(number, null, text, null, null);
				}
				Toast.makeText(MainActivity.this, "发送成功",Toast.LENGTH_SHORT).show();
			}
		});
	}
}

String.xml文件我就不传了

今天这个程序运行不起来,项目上老有红叉,说是*.dex文件无法访问,折腾了两个小时,才知道,是360杀毒把这个bin文件下的*.dex文件给隔离了。恢复后才能远行

运行后,我改了一下界面,结果又跑不起来,还是360给弄的。后来直截关了360杀毒。才运行正常 。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C语言是一种广泛使用的编程语言,它具有高效、灵活、可移植性强等特点,被广泛应用于操作系统、嵌入式系统、数据库、编译器等领域的开发。C语言的基本语法包括变量、数据类型、运算符、控制结构(如if语句、循环语句等)、函数、指针等。在编写C程序时,需要注意变量的声明和定义、指针的使用、内存的分配与释放等问题。C语言中常用的数据结构包括: 1. 数组:一种存储同类型数据的结构,可以进行索引访问和修改。 2. 链表:一种存储不同类型数据的结构,每个节点包含数据和指向下一个节点的指针。 3. 栈:一种后进先出(LIFO)的数据结构,可以通过压入(push)和弹出(pop)操作进行数据的存储和取出。 4. 队列:一种先进先出(FIFO)的数据结构,可以通过入队(enqueue)和出队(dequeue)操作进行数据的存储和取出。 5. 树:一种存储具有父子关系的数据结构,可以通过中序遍历、前序遍历和后序遍历等方式进行数据的访问和修改。 6. 图:一种存储具有节点和边关系的数据结构,可以通过广度优先搜索、深度优先搜索等方式进行数据的访问和修改。 这些数据结构在C语言中都有相应的实现方式,可以应用于各种不同的场景。C语言中的各种数据结构都有其优缺点,下面列举一些常见的数据结构的优缺点: 数组: 优点:访问和修改元素的速度非常快,适用于需要频繁读取和修改数据的场合。 缺点:数组的长度是固定的,不适合存储大小不固定的动态数据,另外数组在内存中是连续分配的,当数组较大时可能会导致内存碎片化。 链表: 优点:可以方便地插入和删除元素,适用于需要频繁插入和删除数据的场合。 缺点:访问和修改元素的速度相对较慢,因为需要遍历链表找到指定的节点。 栈: 优点:后进先出(LIFO)的特性使得栈在处理递归和括号匹配等问题时非常方便。 缺点:栈的空间有限,当数据量较大时可能会导致栈溢出。 队列: 优点:先进先出(FIFO)的特性使得
你可以使用Android Studio来开发一个发送短信的应用程序。下面是一些步骤,帮助你开始: 1. 首先,在Android Studio中创建一个新的项目。选择"Empty Activity"模板,并为你的应用程序提供一个适当的名称。 2. 在布局文件中添加一个EditText控件,用于输入短信内容。同时,添加一个Button控件,用于触发发送短信的操作。 3. 在Activity类中,找到EditText和Button的引用,并设置点击按钮时的点击事件监听器。 4. 在点击事件监听器中,获取EditText中的文本,并使用SmsManager类发送短信。你需要添加发送短信的权限到AndroidManifest.xml文件中。 这是一个简单的示例代码,帮助你理解如何实现: ```java import android.Manifest; import android.content.pm.PackageManager; import android.os.Bundle; import android.telephony.SmsManager; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; import androidx.appcompat.app.AppCompatActivity; import androidx.core.app.ActivityCompat; import androidx.core.content.ContextCompat; public class MainActivity extends AppCompatActivity { private static final int SMS_PERMISSION_CODE = 1; private EditText editTextMessage; private Button buttonSend; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); editTextMessage = findViewById(R.id.edit_text_message); buttonSend = findViewById(R.id.button_send); buttonSend.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String message = editTextMessage.getText().toString(); if (!message.isEmpty()) { if (checkPermission(Manifest.permission.SEND_SMS)) { sendMessage(message); } else { requestPermission(Manifest.permission.SEND_SMS, SMS_PERMISSION_CODE); } } else { Toast.makeText(MainActivity.this, "Please enter a message", Toast.LENGTH_SHORT).show(); } } }); } private boolean checkPermission(String permission) { int permissionResult = ContextCompat.checkSelfPermission(this, permission); return permissionResult == PackageManager.PERMISSION_GRANTED; } private void requestPermission(String permission, int requestCode) { ActivityCompat.requestPermissions(this, new String[]{permission}, requestCode); } private void sendMessage(String message) { try { SmsManager smsManager = SmsManager.getDefault(); smsManager.sendTextMessage("phoneNumber", null, message, null, null); Toast.makeText(this, "Message sent", Toast.LENGTH_SHORT).show(); } catch (Exception e) { Toast.makeText(this, "Failed to send message", Toast.LENGTH_SHORT).show(); e.printStackTrace(); } } @Override public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); if (requestCode == SMS_PERMISSION_CODE) { if (grantResults.length > 0 && grantResults == PackageManager.PERMISSION_GRANTED) { Toast.makeText(this, "Permission granted", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(this, "Permission denied", Toast.LENGTH_SHORT).show(); } } } } ``` 请记得将"phoneNumber"替换为你要发送短信的手机号码。 这只是一个简单的示例,你可能需要根据你的需求进行修改和扩展。希望对你有帮助!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值