2016-03-09 4 views
0

У меня есть сбойное SMS-сообщение в моем родном почтовом ящике. Я не могу извлечь его из своего приложения. Используемый мной запрос:Извлечение SMS в зефир

content://mms-sms/conversations/73 

SELECT transport_type, _id, thread_id, address, body, date, date_sent, read, type, status, locked, error_code, sub, sub_cs, date, date_sent, read, m_type, msg_box, d_rpt, rr, err_type, locked, st FROM (SELECT DISTINCT date * 1 AS normalized_date, 'sms' AS transport_type, _id, thread_id, address, body, date, date_sent, read, type, status, locked, error_code, NULL AS sub, NULL AS sub_cs, date, date_sent, read, NULL AS m_type, NULL AS msg_box, NULL AS d_rpt, NULL AS rr, NULL AS err_type, locked, NULL AS st FROM sms WHERE (thread_id = 73 AND (type != 3)) UNION SELECT DISTINCT date * 1000 AS normalized_date, 'mms' AS transport_type, pdu._id, thread_id, NULL AS address, NULL AS body, date, date_sent, read, NULL AS type, NULL AS status, locked, NULL AS error_code, sub, sub_cs, date, date_sent, read, m_type, msg_box, d_rpt, rr, err_type, locked, st FROM pdu LEFT JOIN pending_msgs ON pdu._id = pending_msgs.msg_id WHERE (thread_id = 73 AND msg_box != 3 AND (msg_box != 3)) ORDER BY normalized_date ASC) ORDER BY normalized_date ASC 

где 73 - идентификатор потока. В леденец и kitkat он отлично работает. Но в зефире он возвращает «0» новые сообщения.

Пожалуйста, помогите мне здесь.

Были какие-то изменения в собственных SMS-сообщениях СУБП в marshmallow ???

ответ

3

Эта проблема возникает потому, что в зефир, существует ограничение доступа при просмотре SMS. SQL-представление создается с именем «sms_restricted» и содержит только MESSAGE_TYPE_INBOX и MESSAGE_TYPE_SENT. Это единственное, что доступно другим разработчикам приложений.

Неисправные сообщения, черновики сообщений, сообщения об ошибках, сообщения в очереди недоступны, если наше приложение не создано как «приложение по умолчанию для обмена сообщениями».

0

Не могли бы вы попробовать с этим Uri: содержание: // смс/Входящие

+0

Можете ли вы объяснить, что проблема юй предвидеть здесь? когда он работает на леденец, почему он не работает в зефире? – Ajitha

+0

content: // mms-sms/conversations поставщик контента не входит в Android sdk. Это часть прошивки. Таким образом, приложение Android не доступно. –

+0

действительно может получать сообщения в «INBOX». проблема возникает, когда я пытаюсь получить сообщения, отправленные на Invalid number ... Что я вижу, это имеет errorCode: 29, когда я вижу «Сведения о сообщении» ... – Ajitha

3

в зефир, получить разрешение должно быть время выполнения

final private int REQUEST_CODE_ASK_PERMISSIONS = 123;  


    if(Build.VERSION.SDK_INT < 23){ 
     //your code here 
    }else { 
     requestContactPermission(); 
    } 



    private void requestContactPermission() { 

    int hasContactPermission =ActivityCompat.checkSelfPermission(context,Manifest.permission.READ_SMS); 

    if(hasContactPermission != PackageManager.PERMISSION_GRANTED) { 
     ActivityCompat.requestPermissions(Context, new String[]{Manifest.permission.READ_SMS}, PERMISSION_REQUEST_CODE); 
    }else { 
     //Toast.makeText(AddContactsActivity.this, "Contact Permission is already granted", Toast.LENGTH_LONG).show(); 
     } 
    } 


    @Override 
    public void onRequestPermissionsResult(int requestCode, String[]  permissions, int[] grantResults) { 
    switch (requestCode) { 
     case REQUEST_CODE_ASK_PERMISSIONS: 
      // Check if the only required permission has been granted 
      if (grantResults.length >0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { 

       Log.i("Permission", "Contact permission has now been granted. Showing result."); 
       Toast.makeText(this,"Contact Permission is Granted",Toast.LENGTH_SHORT).show(); 
      } else { 
       Log.i("Permission", "Contact permission was NOT granted."); 
       } 

      break; 

    } 
} 
+0

см. эту ссылку https://developer.android .com/гид/темы/безопасность/permissions.html – RejoylinLokeshwaran

Смежные вопросы