调用短信权限android_android 发送短信调用手机自己的发送短信 - CSDN
  •  1、添加打电话的权限在manifast文件中。    2、使用Uri.parse(String a)创建Uri。  Uri uri = Uri.parse("tel:"+1008611);  3、创建打电话的意图。  Intent intent = new Intent(Intent.A

    一、打电话

         1、添加打电话的权限在manifast文件中。

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

         2、使用Uri.parse(String a)创建Uri。

               Uri uri = Uri.parse("tel:"+1008611);

         3、创建打电话的意图。

              Intent intent = new Intent(Intent.ACTION_CALL, uri);

         4、启动系统打电话页面。

              startActivity(intent);

    二、发短信

        方式一:直接发送短信

        1、添加发送短信的权限在manifast文件中。

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

        2、获取android.telephony.SmsManager对象(PS:android.telephony.gsm.SmsManager已经废弃)。

            SmsManager smsManager = SmsManager.getDefault();

        3、声明一个短信内容的常量。

           String content = "Hello World!";

        4、将短信内容分块,发送一条短信最多能够发送70个中文字符,超过这个值系统会将短信内容分为多块进行发送。

            ArrayList<String> list = smsManager.divideMessage(content);

        5、分条进行发送。

           for (int i = 0; i < list.size(); i++) {
                    smsManager.sendTextMessage("10086", null, list.get(i), null, null);
                }

        方式二:调用系统的发送短信的界面,需要输入号码

         1、创建意图

        Intent intentFinalMessage = new Intent(Intent.ACTION_VIEW);

        2、设置类型

        intentFinalMessage.setType("vnd.android-dir/mms-sms");
          3、打开系统短信界面

         startActivity(intentFinalMessage); 

         方式三:调用系统的发送短信的界面,不需要输入号码

         1、创建Uri,设置行为和号码

         Uri uri2 = Uri.parse("smsto:"+10086);

         2、创建意图。     

         Intent intentMessage = new Intent(Intent.ACTION_VIEW,uri2);
        3、打开系统短信界面,号码已经填写,只需填写要发送   

            startActivity(intentMessage); 

         

    三、sendTextMessage(String destinationAddress, String scAddress, String text, PendingIntent sentIntent, PendingIntent deliveryIntent) 参数说明:

          1、destinationAddress:给这个号码发送短信。

          2、scAddress:使用这个号码发送短信,为null时表示使用本机发送。

          3、text:短信内容。

          4、sentIntent:发送短信成功或失败之后发送广播。

          5、deliveryIntent:对方接受到短信之后发送广播。

    四、发送广播的短信发送

          1、注册广播

                注册自己发送短信的广播:

                SEND_SMS_ACTION = "3";
            registerReceiver(new BroadcastReceiver(){

                @Override
                public void onReceive(Context context, Intent intent) {
                    //根据结果码判断是否发送成功
                    if(Activity.RESULT_OK == getResultCode()){
                        Toast.makeText(MainActivity.this, "发送成功", Toast.LENGTH_SHORT).show();
                    }else{
                        Toast.makeText(MainActivity.this, "发送失败", Toast.LENGTH_SHORT).show();
                    }
                }
                
            }, new IntentFilter(SEND_SMS_ACTION));

             注册对方接受到短信的广播:

             BACK_SMS_ACTION = "4";
            registerReceiver(new BroadcastReceiver(){

                @Override
                public void onReceive(Context context, Intent intent) {
                    //只要接收到这个广播,表示接收短信成功
                    Toast.makeText(MainActivity.this, "对方接收到短信", Toast.LENGTH_SHORT).show();
                }
                
            }, new IntentFilter(BACK_SMS_ACTION));

            2、发送 短信,监听发送情况、监听对方接受情况,如果短信发送成功或失败

                PendingIntent.getBroadcast(MainActivity.this, 0, new Intent(SEND_SMS_ACTION), 0)会发送广播,

                如果对方接受到短信

               PendingIntent.getBroadcast(MainActivity.this, 0, new Intent(BACK_SMS_ACTION), 0));会发送广播

              for (int i = 0; i < list.size(); i++) {
                    smsManager.sendTextMessage("10086", null, list.get(i),
                            PendingIntent.getBroadcast(MainActivity.this, 0, new Intent(SEND_SMS_ACTION), 0),
                            PendingIntent.getBroadcast(MainActivity.this, 0, new Intent(BACK_SMS_ACTION), 0));
               }

    五、使用smsManager发送其它格式的短信

         1、sendDataMessage(String destinationAddress, String scAddress, short destinationPort, byte[] data, PendingIntent sentIntent, PendingIntent

      deliveryIntent)

      其它参数一样,第三个参数short destinationPort,给这个号码的这个端口号发送这条短信,短信内容为字节数组格式。

     2、sendMultipartTextMessage(String destinationAddress, String scAddress, ArrayList<String> parts, ArrayList<PendingIntent> sentIntents,    ArrayList<PendingIntent>  deliveryIntents)

      给这个号码发送多条短信。

    展开全文
  • 2、获取用户输入的将要发生发送的短信内容3、利用 Intent 调用系统发送短信;实践1、layout布局&lt;EditText android:id="@+id/tel" android:layout_width="match_parent" android:...

    思路

    1、获取用户输入的将要接收短信的号码;

    2、获取用户输入的将要发生发送的短信内容

    3、利用 Intent 调用系统发送短信;


    实践

    1、layout布局

    <EditText
        android:id="@+id/tel"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:inputType="number"
        android:hint="接收短信号码"/>
    <EditText
        android:id="@+id/content"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="短信内容"/>
    <Button
        android:id="@+id/goto_short_message"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="发送短信"/>

    2、java代码

    String tels = tel.getText().toString();              //获取电话
    String contents = content.getText().toString();      //获取短信内容
    Intent intent = new Intent();                        //创建 Intent 实例
    intent.setAction(Intent.ACTION_SENDTO);             //设置动作为发送短信
    intent.setData(Uri.parse("smsto:"+tels));           //设置发送的号码
    intent.putExtra("sms_body", contents);              //设置发送的内容
    startActivity(intent);                               //启动 Activity
    tel 和 content 都是文本输入框 EditText ,
    其中 smsto 和 sms_body 都不能写错了,不然跳转到系统之后就会丢失信息

    3、AndroidManifest.xml权限设置

    <uses-permission android:name="android.permission.SEND_SMS" />
    源码:https://github.com/iscopy/Blog
    展开全文
  • 首先,应该在程序清单文件AndroidManifest.xml中加入发短信权限 android:name="android.permission.SEND_SMS"/> 图 1 图1为发短信的简要界面 包括两个TextView组件,两个EditText组件,一个Button组件,在主...
    首先,应该在程序清单文件AndroidManifest.xml中加入发短信的权限
    <uses-permission android:name="android.permission.SEND_SMS"/>
    Android开发中如何调用发短信功能
    图 1
    图1为发短信的简要界面
    包括两个TextView组件,两个EditText组件,一个Button组件,在主程序为发送按钮增加单击事件
    private EditText txt_num;
    private EditText txt_content;
    public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.main);
      txt_num= (EditText) this.findViewById(R.id.txt_num);
      txt_content=(EditText) this.findViewById(R.id.txt_content);
      Button btn_send = (Button) this.findViewById(R.id.btn_send);
      btn_send.setOnClickListener(new OnClickListener() {
    public void onClick(View v) {
    String str_num = txt_num.getText().toString();//得到电话号码
    String str_content = txt_content.getText().toString();//得到短信内容
    SmsManager manager_sms = SmsManager.getDefault();//得到短信管理器
    //由于短信可能较长,故将短信拆分
     ArrayList<String> texts = smsManager.divideMessage(str_content);
    for(String text : texts){
      smsManager.sendTextMessage(str_num, null, text, null, null);//分别发送每一条短信
    }
           Toast.makeText(SMSActivity.this, "发送成功!", Toast.LENGTH_LONG).show();//提示成功
           }
      });
        }
    至此,发送短信功能介绍完毕
    展开全文
  • 对于手机来说,打电话,发短信等基本功能在操作系统的平台中都已经做好了,如果你开发的应用程序需要使用到打电话或者发短信的功能,直接调用android提供的方法或接口即可,无需自己重新写实现的方法。   下面以...

    对于手机来说,打电话,发短信等基本功能在操作系统的平台中都已经做好了,如果你开发的应用程序需要使用到打电话或者发短信的功能,直接调用android提供的方法或接口即可,无需自己重新写实现的方法。

     

    下面以一个小小的发送短信的例子练习一下如何调用已封装好的接口

     

    1. 确定需求。

    要发送一封短信,需要以下一些元素:

    textView : 收信人

    EditText: (收信人地址,即电话号码)

    textView:短信内容

    EditView: (短信内容)

    Button :(发送确认按钮)

     

    2. 在strings.xml中将所需要的文本信息添加上去:

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
    
        <string name="app_name">短信发送</string>
        <string name="action_settings">Settings</string>
        <string name="txt_sender">发送号码</string>
        <string name="txt_content">短信内容</string>
        <string name="btn_send">发送</string>
    
    </resources>
    

     

    3. 设置界面原型

    将所需组件添加到布局文件中,并为“发送”按钮添加监听事件

    main.xml

    <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="match_parent"
        android:orientation="vertical"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        tools:context=".MainActivity" >
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/txt_sender" />
    
        <EditText
            android:id="@+id/sender"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:ems="10"
            android:inputType="phone" >
    
            <requestFocus />
        </EditText>
    
        <TextView
           
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/txt_content" />
    
        <EditText
            android:id="@+id/content"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ems="10"
            android:inputType="textMultiLine" 
            android:minLines="4"/>
    
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/btn_send"
            android:onClick="sendSms"
             />
    
    </LinearLayout>


    4. 在Activity中将布局文件中的组件显示出来,设计与实现监听方法(sendSms)

    MainActivity.java

    package com.example.study2;
    
    import java.util.ArrayList;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.telephony.SmsManager;
    import android.view.View;
    import android.widget.EditText;
    
    public class MainActivity extends Activity {
    
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.main);
    	}
    
    	public void sendSms(View view){
    		
    		//获取用户输入的信息
    		EditText sender = (EditText) findViewById(R.id.sender);
    		EditText content = (EditText) findViewById(R.id.content);
    		
    		String sendStr = sender.getText().toString();
    		String contentStr = content.getText().toString();
    		
    		//发送短信
    		SmsManager smsmsg = SmsManager.getDefault();
    		ArrayList<String> msgs = smsmsg.divideMessage(contentStr);
    		for(String msg:msgs){
    			smsmsg.sendTextMessage(sendStr, null, msg, null, null);
    		}
    		
    		int i = msgs.size();
    		System.out.println("发送了"+i+"条短信!");
    		
    	}
    }
    


    注意:在使用SmsManager时,在使用Inport进行导入时,一定要注意导入的包是import android.telephony.SmsManager;

    如果导入的是 import android.telephony.gsm.SmsManager;

    此时,IED工具会提示该类已过时。

     

    在处理发送短信的方法中,有几点需要注意:

    -->首先必须调用SmsManager的getDefault()静态方法来获取一个SmsManager对象,才能进行后续的操作

    -->将信息进行切割。每条短信的字数是固定的,在发送短信前,没有进行短信切割的操作,如果发送的内容过长,超出的部分将被截断,收信人无法收到截断的内容。

    所以,需要在发送前将信息分成多条进行发送(调用divideMessage()方法,返回的是一个ArrayList数组)。

     

    5. 为应用程序授予发送短信的权限

    在进行了上面的操作以后,还不能马上进行短信的发送(当然,如果此时发送的话,会报错的)

    在AndroidMainfest.xml文件为应用程序授权

    在标签<application>前添加下面的语句:

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

     

    这样就可以进行测试了。。。

     

     

    展开全文
  • Activity活动类: package ... import ………… public class MainActivity extends Activity { private Button btn = null; private Button btn2 = null; @Override protected void onCreate(Bund

    Activity活动类:

    package com.example.intentdemo;
    import …………
    public class MainActivity extends Activity {
    	private Button btn = null;
    	private Button btn2 = null;
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_main);
    		btn = (Button) findViewById(R.id.mainBtn);
    		btn.setOnClickListener(listener);
    		btn2 = (Button) findViewById(R.id.mainBtn2);
    		btn2.setOnClickListener(listener2);
    	}
    	private OnClickListener listener = new OnClickListener() {
    		
    		@Override
    		public void onClick(View arg0) {
    			Intent intent = new Intent();
    			intent.setAction(Intent.ACTION_CALL);
    			intent.setData(Uri.parse("tel:5554"));
    			startActivity(intent);
    		}
    	};
    	private OnClickListener listener2 = new OnClickListener() {
    		
    		@Override
    		public void onClick(View arg0) {
    			Intent intent = new Intent();
    			intent.setAction(Intent.ACTION_SENDTO);
    			intent.setData(Uri.parse("smsto:5554"));
    			intent.putExtra("sms_body", "Welcome to ......");
    			startActivity(intent);
    		}
    	};
    }

    layout布局:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
       ………… >
    	<Button 
    	    android:id="@+id/mainBtn"
    	    android:layout_width="wrap_content"
    	    android:layout_height="wrap_content"
    	    android:text="call"/>
    	<Button 
    	    android:id="@+id/mainBtn2"
    	    android:layout_width="wrap_content"
    	    android:layout_height="wrap_content"
    	    android:text="send"/>
    </LinearLayout>

    Manifest文件配置:

    <application></application>标签的外部添加

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


    展开全文
  • package ... import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; public clas...
  • 1.打电话:Intent intent=new Intent(Intent.ACTION_CALL,Uri.parse("...对应的权限 Manifest.permission.CALL_PHONE2.发短信:Uri uri2 = Uri.parse("smsto:"+“12345678910”); Intent...
  • 相信很多开发的同学们免不了遇到过这个问题,就是调用系统的发送短信界面,其实这个问题还是比较容易的,只需向系统发送一个Intent,并附带相关参数就可以了,下面以一个demo说明。 类似下图的界面 activity_...
  • 小结:刚开始觉得短信发送很简单啊,不就是这样这样,再那样一下就好了嘛。但其实内容听繁琐的。坑不多,但需要判断的东西挺多。首先需要判断有无SIM卡 TelephonyManager tm = (TelephonyManager) getSystemService...
  • 写应用经常会遇到获取通讯联系人列表,发送短信, ... 首先介绍一下发送短信的两种方式: 一、静默发送。也就是在用户不知道的情况下,直接把短信发送出去,很是流氓。...直接调用系统自动发送短信功能,不需要在清单
  • android中可以通过两种方式发送短信 第一:调用系统短信接口直接发送短信;... * 直接调用短信接口发短信 * @param phoneNumber * @param message */ public void sendSMS(String phoneNumber,String messag...
  • Android 发送短信

    2018-08-12 17:25:26
    代码: //获取短信管理器 SmsManager smsManager = SmsManager.getDefault(); String message = "... //拆分长短信(一条短信最多75个字符) ArrayList&lt;String&gt; list = smsManager.div...
  • android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <action android:name="android.intent.action.MAIN" /> ...
  • 权限:<uses-permission android:name="android.permission.SEND_SMS"></uses-permission>java代码:public class MainActivity extends AppCompatActivity implements View.OnClickListener { private EditText ...
  • Android部分: 1:安装Java环境和Eclipse。(只要你的unity能够发布apk文件,那我相信你的环境也已经配置好了)。 2:创建Android工程: (1) (2)填写项目名称 (3)选择上Mark this project as alibrary ...
  • android4.4短信新概念

    2014-01-02 08:22:59
    android4.4对短信引入了一个全新的概念:默认短信应用。即android用户可以在系统设置里面选择一个默认的短信应用,只有这个应用才能进行手机的基本短信操作。按照google自己的解释这样做的原因是因为很多第三方的APP...
  • Android短信功能

    2018-06-07 15:04:55
    短信 方式一:直接发送短信 1、添加发送短信权限在manifast文件中。 &lt;uses-permission android:name="android.permission.SEND_SMS"/&gt; 2、获取android.telephony.SmsManager对象...
  • MIUI的坑爹设计还真不少。...MIUI权限申请也是坑! 就拿READ_SMS这个权限来说,按照安卓规范来动态申请,它不弹窗让用户允许,然后...然后想实现自动填短信验证码,不好意识,我MIUI自定义了一个通知类短信权限(Service
  • 一、打电话  1、添加打电话的权限在manifast文件中。... Android:name="android.permission.CALL_PHONE"/>  2、使用Uri.parse(String a)创建Uri。  Uri uri = Uri.parse("tel:"+1008611);  3、
  • Android 调用打电话和发短信功能 1.打电话 可以自己写界面,在button的单击事件中添加如下代码即可:  Intent intent = new Intent();  intent.setAction("Android.intent.action.CALL");  ...
1 2 3 4 5 ... 20
收藏数 14,170
精华内容 5,668
关键字:

调用短信权限android