2 s39014971 s39014971 于 2016.03.13 16:32 提问

Android 接收短信功能

package com.example.smstest;

import javax.security.auth.PrivateCredentialPermission;

import android.os.Bundle;
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.telephony.gsm.SmsMessage;
import android.util.Log;
import android.view.Menu;
import android.widget.TextView;

public class MainActivity extends Activity {

private TextView sender;
private TextView content;
private IntentFilter receiveFilter;
private MessageReceiver messageReceiver;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    sender=(TextView)findViewById(R.id.sender);
    content=(TextView)findViewById(R.id.content);
    receiveFilter=new IntentFilter();
    Log.v("sss","success0");
    receiveFilter.addAction("android.provider.Telephony.SMS_RECEIVED");
    Log.v("sss","success1");
    messageReceiver=new MessageReceiver();
    Log.v("sss","success2");
    registerReceiver(messageReceiver,receiveFilter);
    Log.v("sss","success3");
}
 class MessageReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        // TODO Auto-generated method stub
        Log.v("sss","success4");
        Bundle bundle=intent.getExtras();//从intent中取出一个bundle对象
        Object[] pdus=(Object[])bundle.get("pdus");
        //提取短信消息使用pdus密钥提取一个SMS pdus数组;
        SmsMessage[] messages=new SmsMessage[pdus.length];

        //将每一字节数组转换为SmsMessage对象

        for(int i=0;i<messages.length;i++)
        {
            messages[i]=SmsMessage.createFromPdu((byte[])pdus[i]);
        }
        String address=messages[0].getOriginatingAddress();
        //调用message对象的getOriginatingAddress()方法
        //获取发送方号码;
        String fullMessage=" ";
        for(SmsMessage message: messages)
        {
            fullMessage+=message.getMessageBody();//获取短信内容将短信内容拼接起来
        }
        sender.setText(address);//显示在TextView上
        content.setText(fullMessage);
    }
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}
@Override
protected void onDestroy() {
    // TODO Auto-generated method stub
    super.onDestroy();
    unregisterReceiver(messageReceiver);
}

}

1个回答

s39014971
s39014971   2016.03.13 16:35
已采纳

定义了两个Textview为什么收到短信之后程序界面没有显示

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Android6.0下的短信接收与发送功能的实现
最近学习了android6.0下的短信功能,发现《第一行代码》一书中的实现代码中使用的createFromPdu(byte[] pdu)函数,在API23中已经被弃用,取而代之的是createFromPdu(byte[] pdu, String format)(查看)。看起来区别不大,但是为了找这个format参数的使用方法,还是费了挺大功夫的。接下来介绍具体用法。
Android 接收和发送短信
1.android发送短信                 android API 中提供了smsManager类处理短信。其中的sendTextMessage(num, null, content, pend, null)函数就是发送         短信的方法。第一个参数为目标者手机号、第二个参数为短信中心地址 null为默认地址、         第三个参数短信的文本内容、第四个参
广播——使用广播接收者接收短信
转自http://www.cnblogs.com/zhongyinghe/p/5316123.html 1、如果想使用广播接受者接收短信,必须先启动activity;如果不启动activit的话在4.0以上的版本是无效的,这是为了安全考虑 2、清单文件 3、权限清单设置
android短信发送和接受
短信发送发短信第一件事是在manifest文件中添加权限<uses-permission android:name="android.permission.SEND_SMS" /> 第一方法:调用系统发短信的应用 /** * 调起系统功能发短信 * @param phoneNumber * @param message
Android发送和接收短信方法
轻松实现android发送和接收短信功能
[Android]通过广播读取短信
此实例实现功能为通过接收广播读取短信:代码 AndriodMainfest文件 申明权限 <uses-permission android:name="android.permission.RECEIVE_SMS" > </uses-permission>配置广播 <receiver android:name="activity.SMSBroadcastReceive
android学习十四(android的接收短信)
android中短信的发送也接收拦截
android接收和发送短信代码-BroadcastReceiver应用
学习郭神的第一行代码的时候跟着敲的,留作今后学习用。
android 短信的接收和发送处理
一 初始化   手机开机初始化调用GSMPhone 构造函数。 GSMPhone (Context context, CommandsInterface ci, PhoneNotifier notifier, boolean unitTestMode) 创建  mSMS = new GsmSMSDispatcher(this); 该类继承于SMSDispatcher。
android虚拟机接收短信的广播
首先: 在清单文件中添加权限:<uses-permission android:name="android.permission.RECEIVE_SMS"/>由于是在接收手机短信的广播,所以我们还需要自己定义的一个接收器,我定义了一个接收器名叫GetSmsReceiver 接下来,需要给接收器在清单文件中注册一下:<receiver android:name=".message.content.