2012-04-26 11 views
-1

由於沒有broadcastReceiver發送短信,因此我們需要定期輪詢SMS內容提供商(content:// sms/sent),並提出一種方法來捕獲消息已發送(onChange)。 這是最簡單的部分!如何捕捉用戶手動發送的短信?任何天才詭計?

棘手的是,它可能是一種可能(可能是一個巧妙的技巧,破解,變通或甚至現有系統中的漏洞),可以指示用戶是手動發送短信還是由某些人自動發送其他已安裝的應用程序與後臺服務或由某些意圖觸發的接收器!

什麼說?可能?

+0

只有使用原生SMS應用程序發送的短信纔會顯示在「已發送」表格中。任何使用「SmsManager」發送的應用程序,這些smses都不會記錄在發送的文件夾中。 – st0le 2012-04-26 13:16:05

回答

0

如果烏拉圭回合應用正在發送短信那麼在哪裏得到短信的狀態發送或不作爲below..As你不具有全球回撥不發你不能知道它的短信..

/** 
* Listen to Delivery Reports of sent SMSs 
*/ 
private BroadcastReceiver mSmsDeliveryListener = new BroadcastReceiver() { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     try{ 
      int result = getResultCode(); 
      switch (result){ 
       case Activity.RESULT_OK: 
        //SMS Delivered 
        break; 

       case Activity.RESULT_CANCELED: 
       case SmsManager.RESULT_ERROR_GENERIC_FAILURE: 
       case SmsManager.RESULT_ERROR_NO_SERVICE: 
       case SmsManager.RESULT_ERROR_NULL_PDU: 
       case SmsManager.RESULT_ERROR_RADIO_OFF: 
        //SMS Delivery failed 
        break; 

       default: 
     //SMS Delivery failed 
        break; 
       } 

      }//End of Switch 
     }catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
}; 
+1

馬克答案,如果有用 – NitZRobotKoder 2012-04-26 14:19:48

+0

這並不回答被問了的問題 – Elemental 2012-04-26 14:30:54

+0

因爲它是不可能得到短信不從系統回調與我們自己的接收器,我的答案持有一些價值是不是.. – NitZRobotKoder 2012-04-26 14:34:35