OK、みんな、SMSを取得するための私のコードは次のとおりです。
Cursor cursor = getContentResolver().query(Uri.parse(uri),
null, CallLog.Calls.DATE + " > " + lastSmsTime, null,
CallLog.Calls.DATE + " ASC");
タイプは次のとおりです。
"content://sms/inbox"
"content://sms/sent"
そして電話の場合:
String[] projection = new String[] { CallLog.Calls.NUMBER,
CallLog.Calls.TYPE, CallLog.Calls.DURATION, CallLog.Calls.DATE };
Cursor managedCursor = getContentResolver().query(
CallLog.Calls.CONTENT_URI, projection,
CallLog.Calls.DATE + " > " + lastCallTime, null,
CallLog.Calls.DATE + " ASC");
まず第一に、これは文書化されていないプロバイダーであることを知っています(ご覧のとおり、私は別のプロバイダーの列定数を使用しています)。
面白いことに、これはいくつかの2.3.xデバイスで正常に機能しています。しかし今、私はこれをGalaxy S II(ICS 4.0.3)で試しました。これで、すべてのSMSが通話プロバイダーで複製されます。
誰かがこの問題に遭遇しましたか?
UPD私はここで 同じ質問を見つけました、解決策を探し続けてください。
私が今知っているUDD2から、Samsungはすべてを1つのログに保存するようになったので、ログアプリケーションをリバースエンジニアリングする方法を見つけようとします。
とにかく、まだSMSと通話を分離するための解決策を探しています。