本帖最后由 lincoln24 于 2014-07-21 15:27:32 编辑

解决方案 »

  1.   

    你先查看下logcat,看系统有没有发出广播的
      

  2.   


    模拟器能有效果,说明应该确实发出广播了吧?
    或者你是说用真机的Logcat?有这东西吗
      

  3.   


    模拟器能有效果,说明应该确实发出广播了吧?
    或者你是说用真机的Logcat?有这东西吗当然是连真机上看log咯
      

  4.   


    模拟器能有效果,说明应该确实发出广播了吧?
    或者你是说用真机的Logcat?有这东西吗当然是连真机上看log咯已尝试,logcat毫无反应,我采用的是
    public void onReceive(Context context, Intent intent) {
    // TODO Auto-generated method stub
    SharedPreferences sp = context.getSharedPreferences("data", 2);
    boolean isStart = sp.getBoolean("start", false);
    String safenumber = sp.getString("safenumber", "");
    intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
    System.out.println("get");
    结果并无输出任何东西,模拟器试了一下依然可以
      

  5.   


    模拟器能有效果,说明应该确实发出广播了吧?
    或者你是说用真机的Logcat?有这东西吗当然是连真机上看log咯已尝试,logcat毫无反应,我采用的是
    public void onReceive(Context context, Intent intent) {
    // TODO Auto-generated method stub
    SharedPreferences sp = context.getSharedPreferences("data", 2);
    boolean isStart = sp.getBoolean("start", false);
    String safenumber = sp.getString("safenumber", "");
    intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
    System.out.println("get");
    结果并无输出任何东西,模拟器试了一下依然可以那你只能看看你真机上的信息apk,看看上面的信息广播是怎么注册的
      

  6.   


    我看了一下其他信息,是这么一堆淘宝的跟这个有关系吗。。是否会被拦截
    07-21 17:51:42.110: I/System.out(15307): Restoring profile
    07-21 17:51:42.175: I/System.out(15307): RESTORED BUNDLE com.taobao.passivelocation
    07-21 17:51:42.205: I/System.out(15307): RESTORED BUNDLE com.taobao.mytaobao
    07-21 17:51:42.250: I/System.out(15307): RESTORED BUNDLE com.taobao.wangxin
    07-21 17:51:42.305: I/System.out(15307): RESTORED BUNDLE com.taobao.shop
    07-21 17:51:42.390: I/System.out(15307): RESTORED BUNDLE com.taobao.android.ju
    07-21 17:51:42.430: I/System.out(15307): RESTORED BUNDLE com.taobao.allspark
    07-21 17:51:42.490: I/System.out(15307): RESTORED BUNDLE com.taobao.search
    07-21 17:51:42.525: I/System.out(15307): RESTORED BUNDLE com.taobao.android.gamecenter
    07-21 17:51:42.550: I/System.out(15307): RESTORED BUNDLE com.taobao.weapp
    07-21 17:51:42.585: I/System.out(15307): RESTORED BUNDLE com.taobao.android.scancode
    07-21 17:51:42.605: I/System.out(15307): RESTORED BUNDLE com.taobao.rushpromotion
    07-21 17:51:42.630: I/System.out(15307): RESTORED BUNDLE com.taobao.android.big
    07-21 17:51:42.650: I/System.out(15307): RESTORED BUNDLE com.taobao.taobao.zxing
    07-21 17:51:42.740: I/System.out(15307): RESTORED BUNDLE com.taobao.mobile.dipei
    07-21 17:51:42.795: I/System.out(15307): RESTORED BUNDLE com.taobao.tao.alipay
    07-21 17:51:42.840: I/System.out(15307): RESTORED BUNDLE com.taobao.coupon
    07-21 17:51:42.875: I/System.out(15307): RESTORED BUNDLE com.taobao.legacy
    07-21 17:51:42.900: I/System.out(15307): RESTORED BUNDLE com.taobao.android.trade
    07-21 17:51:42.955: I/System.out(15307): RESTORED BUNDLE com.taobao.caipiao.plugin
    07-21 17:51:43.010: I/System.out(15307): RESTORED BUNDLE com.taobao.nearby
    07-21 17:51:43.085: I/System.out(15307): RESTORED BUNDLE com.taobao.taobao.pluginservice
    07-21 17:51:43.125: I/System.out(15307): RESTORED BUNDLE com.taobao.plugin.arcticcircleplugin
    07-21 17:51:43.145: I/System.out(15307): RESTORED BUNDLE com.taobao.taobao.map
    07-21 17:51:43.180: I/System.out(15307): RESTORED BUNDLE com.tmall.wireless.plugin
    07-21 17:51:43.230: I/System.out(15307): RESTORED BUNDLE com.taobao.tongxue
    07-21 17:51:43.595: I/System.out(15307): STARTING com.taobao.passivelocation
    07-21 17:51:43.620: I/System.out(15307): STARTING com.taobao.allspark
    07-21 17:51:43.785: I/System.out(15307): STARTING com.taobao.wangxin
    07-21 17:51:43.925: I/System.out(15307): STARTING com.taobao.mytaobao
      

  7.   


    我看了一下其他信息,是这么一堆淘宝的跟这个有关系吗。。是否会被拦截
    07-21 17:51:42.110: I/System.out(15307): Restoring profile
    07-21 17:51:42.175: I/System.out(15307): RESTORED BUNDLE com.taobao.passivelocation
    07-21 17:51:42.205: I/System.out(15307): RESTORED BUNDLE com.taobao.mytaobao
    07-21 17:51:42.250: I/System.out(15307): RESTORED BUNDLE com.taobao.wangxin
    07-21 17:51:42.305: I/System.out(15307): RESTORED BUNDLE com.taobao.shop
    07-21 17:51:42.390: I/System.out(15307): RESTORED BUNDLE com.taobao.android.ju
    07-21 17:51:42.430: I/System.out(15307): RESTORED BUNDLE com.taobao.allspark
    07-21 17:51:42.490: I/System.out(15307): RESTORED BUNDLE com.taobao.search
    07-21 17:51:42.525: I/System.out(15307): RESTORED BUNDLE com.taobao.android.gamecenter
    07-21 17:51:42.550: I/System.out(15307): RESTORED BUNDLE com.taobao.weapp
    07-21 17:51:42.585: I/System.out(15307): RESTORED BUNDLE com.taobao.android.scancode
    07-21 17:51:42.605: I/System.out(15307): RESTORED BUNDLE com.taobao.rushpromotion
    07-21 17:51:42.630: I/System.out(15307): RESTORED BUNDLE com.taobao.android.big
    07-21 17:51:42.650: I/System.out(15307): RESTORED BUNDLE com.taobao.taobao.zxing
    07-21 17:51:42.740: I/System.out(15307): RESTORED BUNDLE com.taobao.mobile.dipei
    07-21 17:51:42.795: I/System.out(15307): RESTORED BUNDLE com.taobao.tao.alipay
    07-21 17:51:42.840: I/System.out(15307): RESTORED BUNDLE com.taobao.coupon
    07-21 17:51:42.875: I/System.out(15307): RESTORED BUNDLE com.taobao.legacy
    07-21 17:51:42.900: I/System.out(15307): RESTORED BUNDLE com.taobao.android.trade
    07-21 17:51:42.955: I/System.out(15307): RESTORED BUNDLE com.taobao.caipiao.plugin
    07-21 17:51:43.010: I/System.out(15307): RESTORED BUNDLE com.taobao.nearby
    07-21 17:51:43.085: I/System.out(15307): RESTORED BUNDLE com.taobao.taobao.pluginservice
    07-21 17:51:43.125: I/System.out(15307): RESTORED BUNDLE com.taobao.plugin.arcticcircleplugin
    07-21 17:51:43.145: I/System.out(15307): RESTORED BUNDLE com.taobao.taobao.map
    07-21 17:51:43.180: I/System.out(15307): RESTORED BUNDLE com.tmall.wireless.plugin
    07-21 17:51:43.230: I/System.out(15307): RESTORED BUNDLE com.taobao.tongxue
    07-21 17:51:43.595: I/System.out(15307): STARTING com.taobao.passivelocation
    07-21 17:51:43.620: I/System.out(15307): STARTING com.taobao.allspark
    07-21 17:51:43.785: I/System.out(15307): STARTING com.taobao.wangxin
    07-21 17:51:43.925: I/System.out(15307): STARTING com.taobao.mytaobao跟这些没关系,是看系统有没有发出广播,或者系统被定制过,修改过信息广播
      

  8.   


    我用的是定制系统没错,是魅族的flyme,那若想看其信息广播机制要如何看?
    我查了一下网上有人和我遇到一样的问题,说是android.permission.RECEIVE_SMS的权限被收回了?是否属实
      

  9.   


    我用的是定制系统没错,是魅族的flyme,那若想看其信息广播机制要如何看?
    我查了一下网上有人和我遇到一样的问题,说是android.permission.RECEIVE_SMS的权限被收回了?是否属实所以最好就是直接看系统的短信的app,反编译看下里面的短信广播
      

  10.   


    反编译后。不知是不是我用的工具(ApkDec和ApkTool)有问题,只能看Manifest文件和res文件夹
    感觉里面看不出什么信息,只留意到里面同样有
    <uses-permission android:name="android.permission.RECEIVE_SMS" />
        <uses-permission android:name="android.permission.RECEIVE_SMS_SUPER" />
        <uses-permission android:name="android.permission.RECEIVE_MMS" />
        <uses-permission android:name="android.permission.RECEIVE_MMS_SUPER" />
    以及
    <receiver android:name=".transaction.PrivilegedSmsReceiver" android:permission="android.permission.BROADCAST_SMS">
                <intent-filter>
                    <action android:name="android.provider.Telephony.SMS_RECEIVED" />
                </intent-filter>
                <intent-filter>
                    <action android:name="android.intent.action.DATA_SMS_RECEIVED" />
                    <data android:scheme="sms" />
                </intent-filter>
                <intent-filter>
                    <action android:name="android.intent.action.SMS_STATUS_RECEIVED" />
                </intent-filter>
            </receiver>话说我若粗暴的把这些都加到我Manifest里是否会有效。
      

  11.   


    反编译后。不知是不是我用的工具(ApkDec和ApkTool)有问题,只能看Manifest文件和res文件夹
    感觉里面看不出什么信息,只留意到里面同样有
    <uses-permission android:name="android.permission.RECEIVE_SMS" />
        <uses-permission android:name="android.permission.RECEIVE_SMS_SUPER" />
        <uses-permission android:name="android.permission.RECEIVE_MMS" />
        <uses-permission android:name="android.permission.RECEIVE_MMS_SUPER" />
    以及
    <receiver android:name=".transaction.PrivilegedSmsReceiver" android:permission="android.permission.BROADCAST_SMS">
                <intent-filter>
                    <action android:name="android.provider.Telephony.SMS_RECEIVED" />
                </intent-filter>
                <intent-filter>
                    <action android:name="android.intent.action.DATA_SMS_RECEIVED" />
                    <data android:scheme="sms" />
                </intent-filter>
                <intent-filter>
                    <action android:name="android.intent.action.SMS_STATUS_RECEIVED" />
                </intent-filter>
            </receiver>话说我若粗暴的把这些都加到我Manifest里是否会有效。估计就是这个广播了
      

  12.   


    反编译后。不知是不是我用的工具(ApkDec和ApkTool)有问题,只能看Manifest文件和res文件夹
    感觉里面看不出什么信息,只留意到里面同样有
    <uses-permission android:name="android.permission.RECEIVE_SMS" />
        <uses-permission android:name="android.permission.RECEIVE_SMS_SUPER" />
        <uses-permission android:name="android.permission.RECEIVE_MMS" />
        <uses-permission android:name="android.permission.RECEIVE_MMS_SUPER" />
    以及
    <receiver android:name=".transaction.PrivilegedSmsReceiver" android:permission="android.permission.BROADCAST_SMS">
                <intent-filter>
                    <action android:name="android.provider.Telephony.SMS_RECEIVED" />
                </intent-filter>
                <intent-filter>
                    <action android:name="android.intent.action.DATA_SMS_RECEIVED" />
                    <data android:scheme="sms" />
                </intent-filter>
                <intent-filter>
                    <action android:name="android.intent.action.SMS_STATUS_RECEIVED" />
                </intent-filter>
            </receiver>话说我若粗暴的把这些都加到我Manifest里是否会有效。估计就是这个广播了貌似不行我把这几行都加进去了,没有效果
      

  13.   


    反编译后。不知是不是我用的工具(ApkDec和ApkTool)有问题,只能看Manifest文件和res文件夹
    感觉里面看不出什么信息,只留意到里面同样有
    <uses-permission android:name="android.permission.RECEIVE_SMS" />
        <uses-permission android:name="android.permission.RECEIVE_SMS_SUPER" />
        <uses-permission android:name="android.permission.RECEIVE_MMS" />
        <uses-permission android:name="android.permission.RECEIVE_MMS_SUPER" />
    以及
    <receiver android:name=".transaction.PrivilegedSmsReceiver" android:permission="android.permission.BROADCAST_SMS">
                <intent-filter>
                    <action android:name="android.provider.Telephony.SMS_RECEIVED" />
                </intent-filter>
                <intent-filter>
                    <action android:name="android.intent.action.DATA_SMS_RECEIVED" />
                    <data android:scheme="sms" />
                </intent-filter>
                <intent-filter>
                    <action android:name="android.intent.action.SMS_STATUS_RECEIVED" />
                </intent-filter>
            </receiver>话说我若粗暴的把这些都加到我Manifest里是否会有效。估计就是这个广播了貌似不行我把这几行都加进去了,没有效果看看log里有没有提示没有权限
    或者其他信息
      

  14.   


    刷新的太快了貌似看不出来什么异样
    发信息的时候有出现这么一条信息
    07-22 10:18:50.970: D/MMS_APP(12873): procReceivedPortDataSms: received a gsm msg
    07-22 10:19:00.015: I/StatusBar ClockUpdate?(12769): onReceive() -- ACTION_TIME_TICK信息刷新太繁杂,不知我应该搜什么关键词比较好一点?
      

  15.   

    是不是你的测试手机上安了一些东西, 比如360什么的, 这些程序也会监听短信, 并且优先级比较大, 所以你的程序监听不到, 因为被拦截了。你可以设置优先级
    <intent-filter android:priority=" ">   这里设置如果还不能收到, 有一种方法可以尝试下。
    首先注册一个检测开机启动的receiver,在里面启动一个service
    然后在service里再注册一个接收短信的receiver
      

  16.   


    刷新的太快了貌似看不出来什么异样
    发信息的时候有出现这么一条信息
    07-22 10:18:50.970: D/MMS_APP(12873): procReceivedPortDataSms: received a gsm msg
    07-22 10:19:00.015: I/StatusBar ClockUpdate?(12769): onReceive() -- ACTION_TIME_TICK信息刷新太繁杂,不知我应该搜什么关键词比较好一点?你就用broadcast过滤就ok了,看看都有啥广播
      

  17.   

    最后回避广播用ContentObserver监测短信数据库解决了话说要发送即显短信的话,要把短信的class设置为0,这点不知如何做到?
      

  18.   

    我也猜测是我的手机的问题,但我没安装360或任何拦截软件,优先级我也设置过了,没用。
    还有你最后说的应该是动态注册的方法?我也试过了,然后发现当开机的时候确实能触发短信OnReceive里面的程序,因为我在Service的OnCreate里面加了一句:
    sendBroadcast(new Intent("android.provider.Telephony.SMS_RECEIVED"));
    让其自己发了一个广播。。但是之后就不行了无法再触发。
    我想知道service在运行的时候会调用哪个函数?我可以把代码写到那里面。
      

  19.   

    看了好多,在send那里加个断点,手机调试debug看下呗,,,
      

  20.   

    我也猜测是我的手机的问题,但我没安装360或任何拦截软件,优先级我也设置过了,没用。
    还有你最后说的应该是动态注册的方法?我也试过了,然后发现当开机的时候确实能触发短信OnReceive里面的程序,因为我在Service的OnCreate里面加了一句:
    sendBroadcast(new Intent("android.provider.Telephony.SMS_RECEIVED"));
    让其自己发了一个广播。。但是之后就不行了无法再触发。
    我想知道service在运行的时候会调用哪个函数?我可以把代码写到那里面。写在oncreate里就可以,注册receiver
    //example
    YourReceiver mReceiver = new YourReceiver();       //YourReceiver换成你自己写的那个
    IntentFilter mFilter = new IntentFilter();
    mFilter.addAction("android.provider.Telephony.SMS_RECEIVED");
    registerReceiver(mReceiver, mFilter);