-1

送信された SMS の BroadcastReceiver がないため、SMS コンテンツ プロバイダー (content://sms/sent) を定期的にポーリングし、メッセージが送信されたことをキャッチするメソッド (onChange) を見つける必要があります。それは簡単な部分です!

トリッキーな部分は、ユーザーが手動で SMS を送信したのか、他のインストール済みアプリによって自動的に送信されたのかを示すことができる方法 (独創的なトリック、ハック、回避策、または既存のシステムの抜け穴である可能性があります) です。何らかの意図によってトリガーされるバックグラウンド サービスまたはレシーバーです。

何を言います?可能?

4

1 に答える 1

0

アプリが SMS を送信している場合、SMS が送信されたかどうかのステータスを以下のように取得できます。送信されていないSMSのグローバルコールバックがないため、それを知ることはできません.

    /**
 * 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();
        }
    }
};
于 2012-04-26T14:19:04.253 に答える