У
Удалённый пользователь 28256
Напиши код приложения для андроид блокирующего звонки со всех номеров, кроме тех что указаны в контактах
Смотрите видео ниже, чтобы узнать, как установить наш сайт в качестве веб-приложения на домашнем экране.
Примечание: Эта возможность может быть недоступна в некоторых браузерах.
К сожалению, я не могу написать полноценное приложение для андроид в рамках этого чата. Однако, я могу подсказать, что для реализации подобного приложения необходимо использовать Android SDK, а именно класс TelephonyManager для отслеживания входящих звонков, а также классы ContactsContract и ContentProvider для работы с контактами.Напиши код приложения для андроид блокирующего звонки со всех номеров, кроме тех что указаны в контактах
public class CallBlocker extends BroadcastReceiver {
private static final String TAG = "CallBlocker";
private Context mContext;
@Override
public void onReceive(Context context, Intent intent) {
mContext = context;
TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
if (telephonyManager.getCallState() == TelephonyManager.CALL_STATE_RINGING) {
String phoneNumber = intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER);
if (!isContact(phoneNumber)) {
AudioManager audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
audioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);
telephonyManager.endCall();
}
}
}
private boolean isContact(String phoneNumber) {
ContentResolver contentResolver = mContext.getContentResolver();
Uri uri = Uri.withAppendedPath(ContactsContract.PhoneLookup.CONTENT_FILTER_URI, Uri.encode(phoneNumber));
Cursor cursor = contentResolver.query(uri, new String[]{ContactsContract.PhoneLookup.DISPLAY_NAME}, null, null, null);
if (cursor != null) {
if (cursor.moveToFirst()) {
String contactName = cursor.getString(cursor.getColumnIndex(ContactsContract.PhoneLookup.DISPLAY_NAME));
cursor.close();
Log.d(TAG, "Incoming call from contact: " + contactName);
return true;
}
cursor.close();
}
Log.d(TAG, "Incoming call from unknown number: " + phoneNumber);
return false;
}
}