Опитвате се да получите SMS и MMS на Android - HTC проблеми

Опитвам се да напиша собствен SMS мениджър и намерих много уроци как да получа SMS и MMS с URI и курсор, но при всеки опит получавам проблеми, които не мога да реша. Надявам се да ми помогнете малко. Добре, така че използвам "content://mms-sms/conversations/", което трябва да работи както за SMS, така и за MMS. Разбира се, че не. Този код:

final String[ ] projection = new String[ ]{ "*" };
Uri uri = Uri.parse( "content://mms-sms/conversations/" );
Cursor query = getContentResolver( ).query( uri, projection, null, null, null );

TextView text = ( TextView )findViewById( R.id.textView1 );
text.setText( Integer.toString( query.getCount( ) ) );

Върнете 13, което е невярно, защото когато отворих стандартната си пощенска кутия за Android, преброих 18 разговора.

Второ нещо, също се опитах да получа "адрес" от разговори:

final String[] projection = new String[]{"*"};
Uri uri = Uri.parse("content://mms-sms/conversations/");
Cursor query = getContentResolver( ).query(uri, projection, null, null, null);
while( query.moveToNext( ) )
    System.out.println( "recv " + query.getString( query.getColumnIndexOrThrow( "address" ) ) ); 

Понякога адресът е число, понякога е име, а понякога е нула. Защо? Как мога да поправя това?

Трето нещо, в много уроци, в stackoverflow също, има много просто решение как да получите адреси от MMS. Просто вземете cursor.getString( cursor.getColumnIndexOrThrow( "address")) от MMS и готово. Не тук на HTC. Опитах това:

Cursor cursor = getContentResolver( ).query( Uri.parse( "content://sms/inbox" ), null, null, null, null );
if( cursor.moveToFirst( ) ) 
{
    for( int i = 0; i < cursor.getColumnCount( ); i++ ) 
        System.out.println( "SMS " + cursor.getColumnName( i ) ); 
}

for( int i = 0; i < 3; i++ )
        System.out.println( "***************************************************************" ); 

Cursor cursor2 = getContentResolver( ).query( Uri.parse( "content://mms/inbox" ), null, null, null, null );
if( cursor2.moveToFirst( ) ) 
{
    for( int i = 0; i < cursor2.getColumnCount( ); i++ ) 
        System.out.println( "MMS " + cursor2.getColumnName( i ) ); 
}

И ми върна:

07-21 02:12:40.631: I/System.out(25221): SMS _id
07-21 02:12:40.631: I/System.out(25221): SMS thread_id
07-21 02:12:40.631: I/System.out(25221): SMS toa
07-21 02:12:40.631: I/System.out(25221): SMS address
07-21 02:12:40.631: I/System.out(25221): SMS person
07-21 02:12:40.631: I/System.out(25221): SMS date
07-21 02:12:40.631: I/System.out(25221): SMS protocol
07-21 02:12:40.631: I/System.out(25221): SMS read
07-21 02:12:40.631: I/System.out(25221): SMS status
07-21 02:12:40.631: I/System.out(25221): SMS type
07-21 02:12:40.631: I/System.out(25221): SMS reply_path_present
07-21 02:12:40.631: I/System.out(25221): SMS subject
07-21 02:12:40.631: I/System.out(25221): SMS body
07-21 02:12:40.631: I/System.out(25221): SMS sc_toa
07-21 02:12:40.631: I/System.out(25221): SMS report_date
07-21 02:12:40.631: I/System.out(25221): SMS service_center
07-21 02:12:40.631: I/System.out(25221): SMS locked
07-21 02:12:40.631: I/System.out(25221): SMS index_on_sim
07-21 02:12:40.631: I/System.out(25221): SMS callback_number
07-21 02:12:40.631: I/System.out(25221): SMS priority
07-21 02:12:40.631: I/System.out(25221): SMS htc_category
07-21 02:12:40.631: I/System.out(25221): SMS cs_timestamp
07-21 02:12:40.631: I/System.out(25221): SMS cs_id
07-21 02:12:40.631: I/System.out(25221): SMS cs_synced
07-21 02:12:40.631: I/System.out(25221): SMS error_code
07-21 02:12:40.631: I/System.out(25221): SMS seen
07-21 02:12:40.641: I/System.out(25221): SMS is_cdma_format
07-21 02:12:40.641: I/System.out(25221): SMS is_evdo
07-21 02:12:40.641: I/System.out(25221): SMS c_type
07-21 02:12:40.641: I/System.out(25221): SMS exp
07-21 02:12:40.641: I/System.out(25221): SMS gid
07-21 02:12:40.641: I/System.out(25221): SMS extra
07-21 02:12:40.641: I/System.out(25221): SMS date2
07-21 02:12:40.641: I/System.out(25221): 
***************************************************************
07-21 02:12:40.641: I/System.out(25221): 
***************************************************************
07-21 02:12:40.641: I/System.out(25221): 
***************************************************************
07-21 02:12:40.691: I/System.out(25221): MMS _id
07-21 02:12:40.691: I/System.out(25221): MMS thread_id
07-21 02:12:40.691: I/System.out(25221): MMS date
07-21 02:12:40.691: I/System.out(25221): MMS msg_box
07-21 02:12:40.691: I/System.out(25221): MMS read
07-21 02:12:40.691: I/System.out(25221): MMS m_id
07-21 02:12:40.691: I/System.out(25221): MMS sub
07-21 02:12:40.691: I/System.out(25221): MMS sub_cs
07-21 02:12:40.691: I/System.out(25221): MMS ct_t
07-21 02:12:40.691: I/System.out(25221): MMS ct_l
07-21 02:12:40.691: I/System.out(25221): MMS exp
07-21 02:12:40.691: I/System.out(25221): MMS m_cls
07-21 02:12:40.691: I/System.out(25221): MMS m_type
07-21 02:12:40.691: I/System.out(25221): MMS v
07-21 02:12:40.691: I/System.out(25221): MMS m_size
07-21 02:12:40.691: I/System.out(25221): MMS pri
07-21 02:12:40.691: I/System.out(25221): MMS rr
07-21 02:12:40.691: I/System.out(25221): MMS rpt_a
07-21 02:12:40.691: I/System.out(25221): MMS resp_st
07-21 02:12:40.691: I/System.out(25221): MMS st
07-21 02:12:40.691: I/System.out(25221): MMS tr_id
07-21 02:12:40.691: I/System.out(25221): MMS retr_st
07-21 02:12:40.691: I/System.out(25221): MMS retr_txt
07-21 02:12:40.691: I/System.out(25221): MMS retr_txt_cs
07-21 02:12:40.691: I/System.out(25221): MMS read_status
07-21 02:12:40.691: I/System.out(25221): MMS ct_cls
07-21 02:12:40.691: I/System.out(25221): MMS resp_txt
07-21 02:12:40.691: I/System.out(25221): MMS d_tm
07-21 02:12:40.691: I/System.out(25221): MMS d_rpt
07-21 02:12:40.691: I/System.out(25221): MMS locked
07-21 02:12:40.691: I/System.out(25221): MMS htc_category
07-21 02:12:40.691: I/System.out(25221): MMS cs_timestamp
07-21 02:12:40.691: I/System.out(25221): MMS cs_id
07-21 02:12:40.691: I/System.out(25221): MMS cs_synced
07-21 02:12:40.691: I/System.out(25221): MMS seen
07-21 02:12:40.691: I/System.out(25221): MMS extra
07-21 02:12:40.691: I/System.out(25221): MMS phone_type
07-21 02:12:40.691: I/System.out(25221): MMS date2

Това означава, че НЯМАМ поле "адрес" в MMS. И така, как мога да получа адреса? Мога да получа само нишка, но половината от разговора е невидим. Изглежда, че е невъзможно да кодирате собствен SMS/MMS мениджър, има толкова много грешки в HTC.

В Google Play има приложение, наречено „GO SMS Pro“, което работи добре на моя телефон. Така че това означава, че ИМА начин да го кодирате правилно. Какво правя грешно? Как мога да го поправя и да получавам правилно SMS и MMS?


person Radosław Wójciak    schedule 21.07.2013    source източник


Отговори (2)


Промяна от „content://mms-sms/conversations/“ на „content://mms-sms/conversations“

person Roland Ohlsson    schedule 13.08.2013

Опитвам

Uri    uri    = Uri.parse("content://mms-sms/conversations?simple=true");
person Sỹ Phạm    schedule 13.04.2016