Telefon oldukça açık bir iletişim kanalı olduğu için herkes arayabilir veya istediğiniz zaman istediğiniz numaraya kısa mesaj gönderebilirsiniz - Android kullanıcılarının istenmeyen aramalar ve kısa mesajlar yazın.
Android 7.0'dan önce Android kullanıcılarının, rahatsız edici telefon numaralarından gelen aramaları ve kısa mesajları kısıtlamak için indirilen uygulamalara güvenmesi gerekiyordu. Bu uygulamaların birçoğu ya da uygun API'lerin bulunmadığı için ideal olmayan bir deneyim sunmalarına engellemenize olanak tanır.
Bazı üreticiler kendi engelleme çözümlerini kullanıma hazır olarak sunabilir. Cihaz değiştirmeleri halinde, eksiklik nedeniyle engellenenler listesini tamamen kaybedebilirler. bir araya getirilebilir. Son olarak, kullanıcılar telefonla arama uygulamaları ve hizmet veren mesajlaşma istemcileri ise büyük olasılıkla bu tür işlevleri Engellemenin her iki uygulamada da geçerli olması için, engelleme işlemini her bir uygulamada gerçekleştirin. telefon görüşmesi ve kısa mesaj gönderebilirsiniz.
Özellikler
Android 7.0 sürümünde bir BlockedNumberProvider
içeriği kullanıma sunuluyor
Kullanıcının belirlediği telefon numaralarının listesini saklayan bir sağlayıcı
telefon iletişimleri (çağrılar, SMS, MMS) yoluyla onlarla iletişime geçebilmesidir. İlgili içeriği oluşturmak için kullanılan
aramaları kısıtlayarak ve yalnızca telefon araması üreten
metinleri okumanızı sağlar. Android 7.0'da, engellenen numaraların listesi ve
Kullanıcının numara ekleyip kaldırmasına olanak tanır.
Dahası, numara engelleme özelliği web sitenizin sistem ve ilgili kullanıcının korunmasını ve kullanıcı deneyiminin basitleştirilmesine yardımcı olmak için birlikte sunmaktır. Varsayılan çevirici, varsayılan mesajlaşma istemcisi, UICC ayrıcalığı olan ve diğer uygulamalarla aynı imzaya sahip uygulamaları doğrudan engellenenler listesine yaz. Engellenen numaralar sistemde depolandığından, kullanıcı hangi arama veya mesajlaşma uygulamasını kullanırsa kullansın, numara sayısı değişmez engellendi. Son olarak, engellenen numaralar listesi üreticiden bağımsız olarak yeni bir cihaza geri yüklenebilir.
- Kullanıcının kullanıma hazır olarak çalışan bir engelleme özelliğine sahip olması garanti edilir ve başka bir uygulamaya geçtiğinde veya yeni bir telefon aldığında engellenenler listesini kaybetmez. Sistemdeki tüm alakalı uygulamalar, kullanıcıya en sorunsuz deneyimi sunmak için aynı listeyi paylaşabilir.
- Uygulama geliştiricilerin engellenenler listesini yönetmek için kendi yöntemlerini geliştirmeleri gerekmez. gelen aramaları ve mesajları görebilirsiniz. Yalnızca özellik bulunuyor.
- Kullanıcı tarafından varsayılan olarak seçilen çevirici / mesajlaşma uygulamaları şunları yapabilir:
okuma ve yazma izni olur. Diğer uygulamalar, engelleme listesi yönetimini başlatabilir
kullanıcı arayüzü için
createManageBlockedNumbersIntent()
kullanarak - OEM'ler, engelleme özelliği göndermek için platform tarafından sağlanan özelliği kullanabilir kullanıma hazırdır. OEM'ler, kullanıcılar başka bir OEM'nin cihazından geçiş yaptığında engellenenler listesi de aktarılacağından daha iyi bir ilk katılım deneyimi yaşayacaklarından emin olabilir.
- Operatör kendi numara çevirici veya mesajlaşma uygulaması kullanıyorsa platformu yeniden kullanabilir Bu özellik, kullanıcının engellenenler listesi saklamasına olanak tanır. Üyeleriniz, Google’ın yeni bir giriş yapılsa bile, kullanıcının engellenenler listesinin diğer kullanıcılarda olanak tanır. Son olarak, operatöre özel tüm uygulamalar, engelleme listesini okuyabilir. Bu nedenle, operatör, kullanıcı deneyimi için daha güçlü ek bir engelleme hizmeti engelleme listesine dayalı olarak yapabilirsiniz. Bu özellik artık mümkün.
Veri akışı
Örnekler ve kaynak
Numara engelleme yeni özelliğinin kullanıldığı aramalarla ilgili örnekleri aşağıda bulabilirsiniz:
Engellenen numara yöneticisini uygulamadan başlatma
Context.startActivity(telecomManager.createManageBlockedNumbersIntent(), null);
Engellenen numaraları sorgulayın
Cursor c = getContentResolver().query(BlockedNumbers.CONTENT_URI, new String[]{BlockedNumbers.COLUMN_ID, BlockedNumbers.COLUMN_ORIGINAL_NUMBER, BlockedNumbers.COLUMN_E164_NUMBER}, null, null, null);
Engellenen numarayı girin
ContentValues values = new ContentValues(); values.put(BlockedNumbers.COLUMN_ORIGINAL_NUMBER, "1234567890"); Uri uri = getContentResolver().insert(BlockedNumbers.CONTENT_URI, values);
Engellenen numarayı sil
ContentValues values = new ContentValues(); values.put(BlockedNumbers.COLUMN_ORIGINAL_NUMBER, "1234567890"); Uri uri = getContentResolver().insert(BlockedNumbers.CONTENT_URI, values); getContentResolver().delete(uri, null, null);
Uygulama
Bunlar, sayı engeli eklemek için tamamlanması gereken üst düzey görevlerdir. özelliğini kullanın:
- OEM'ler, kendi cihazlarında arama/mesaj kısıtlaması özelliklerini
BlockedNumberProvider
- Operatörün numara çevirici veya mesajlaşma uygulaması varsa çağrıyı/mesajı uygula
BlockedNumberProvider
kullanarak kısıtlayıcı özellikler - Üçüncü taraf numara çevirici ve mesajlaşma uygulaması satıcıları
Engelleme özellikleri nedeniyle
BlockedNumberProvider
OEM'ler için öneriler
Cihaz daha önce herhangi bir ek çağrı/mesajla gönderilmemişse kısıtlama özelliklerini kullanarak, Android Açık Kaynağı'ndaki sayı engelleme özelliğini Projenin (AOSP) bu tür tüm cihazlarda kullanılması. Teklif edilen malzemelerin Engelleme için gerekli noktaları (ör. bir numarayı doğrudan aramadan engelleme) desteklenir bir ileti dizisinin içinde görünür.
Cihaz daha önce arama/mesaj kısıtlama özellikleriyle birlikte gönderildiyse özellikleri, engellenen tüm tam eşleşen telefon numaralarının BlockedNumberProvider,
içinde depolanması ve sağlayıcıyla ilgili davranışın Android Uyumluluk Tanımlama Belgesi'nde (CDD) belirtilen bu özellikle ilgili koşulları karşılaması için uyarlayın.
Diğer tüm gelişmiş özellikler, özel sağlayıcılar ve özel kullanıcı arayüzü aracılığıyla uygulanabilir CDD şartlarının karşılandığı müddetçe, katı tutarlı telefon numaralarını engelleme. Bu diğer özelliklerin Temel sürümle karıştırılmasını önlemek için, "gelişmiş" özellikler yine de kullanabilirsiniz.
API'ler
Kullanılan API'ler şunlardır:
TelecomManager API
Intent createManageBlockedNumbersIntent()
Carrier Config
KEY_DURATION_BLOCKING_DISABLED_AFTER_EMERGENCY_INT
BlockedNumberContract
adresini ziyaret edin- API'ler,
BlockedNumberContract
tarafından sağlanmıştır boolean isBlocked(Context context, String phoneNumber)
int unblock(Context context, String phoneNumber)
boolean canCurrentUserBlockNumbers(Context context)
- API'ler,
Kullanıcı arayüzü
AOSP'de sağlanan BlockedNumbersActivity.java kullanıcı arayüzü, düşünülebilir. Cihaz uygulayıcıları da iyi bir deneyim sunmak için ilgili CDD şartlarını karşıladığından emin olun.
Yedekleme ve geri yükleme için iş ortağının PC uygulaması gerekebilir.
BlockedNumberProvider
Engellenenler için aşağıdaki resimlere bakın
AOSP'de verilen numaralar arayüzü.
Doğrulama
Uygulamacılar, aşağıdaki CTS testlerini çalıştırarak özellik sürümlerinin amaçlandığı şekilde çalıştığından emin olabilir:
android.provider.cts.BlockedNumberContractTest com.android.cts.numberblocking.hostside.NumberBlockingTest android.telecom.cts.ExtendedInCallServiceTest#testIncomingCallFromBlockedNumber_IsRejected android.telephony.cts.SmsManagerTest#testSmsBlocking
BlockedNumberProvider
, adb
komutları kullanılarak değiştirilebilir
$ adb root
çalıştırıldıktan sonra. Örnek:
adb root
adb shell content query --uri content://com.android.blockednumber/blocked
adb shell content insert --uri / content://com.android.blockednumber/blocked --bind / original_number:s:'6501002000'
adb shell content delete --uri / content://com.android.blockednumber/blocked/1