2016-12-07 12 views
0

Я пытаюсь получить номера блоков вызова в андроиде N, я хочу знать данное это номер блок или нет (например: - 5554 номер эмулятора)блокирующих Android N вызова номера не получаю

Контактов, смс, права доступа к телефону были предоставлены, чтобы разрешить доступ к номерам блоков, и я следил за сайтом «Разработчик Android». https://developer.android.com/reference/android/provider/BlockedNumberContract.html

Но я не могу получить номера блоков, я использую последнюю студию Android 2.2.2 и проверял функциональность в эмуляторе android N у меня нет устройства. Вот мой код.

public class MainActivity extends AppCompatActivity { 

     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_main); 
     } 

    // Button onclick method to show the logs 

    public void displayBlockCursorCount(View view) { 

      if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { 

       String number = "5552"; 
      if (BlockedNumberContract.canCurrentUserBlockNumbers(MainActivity.this)) { 
         if (BlockedNumberContract.isBlocked(MainActivity.this, number)) { 
          Log.e(TAG, "given number is blocked >>>>>> " + number); 
         } 
        } 
       } 
    } 
} 

Я получаю java.lang.SecurityException: Caller должна быть система, по умолчанию дозвона или по умолчанию SMS приложение. Пожалуйста, напишите комментарий, если пропустите комментарий и спасибо за продвижение.

ответ

0

Чтобы получить доступ к заблокированным контактам, ваше приложение должно использоваться по умолчанию для приложения или приложения обмена сообщениями, иначе оно вызывает исключение безопасности.

0

Добавить дополнительную проверку

private boolean isAppAsDefaultDialer() { 
    TelecomManager telecom = mContext.getSystemService(TelecomManager.class); 

    if (getApplicationContext().getPackageName().equals(telecom.getDefaultDialerPackage())) { 
     return true; 
    } 
    return false; 
} 

или проверить Sources https://android.googlesource.com/platform/packages/providers/BlockedNumberProvider/+/android-7.0.0_r1/src/com/android/providers/blockednumber/BlockedNumberProvider.java

И сделать вас приложение, как defaul дозвона

 <intent-filter> 
      <action android:name="android.intent.action.DIAL"/> 
      <category android:name="android.intent.category.DEFAULT"/> 
      <data android:scheme="tel"/> 
     </intent-filter> 

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

  • Нет связанных вопросов^_^