Екран за заключване на Android: позволява на потребителя да отговаря на телефонно обаждане, без да изисква PIN

Създавам персонализиран екран за заключване на Android с персонализиран PIN. Бих искал да позволя на потребителите да отговарят на входящи повиквания, без да се налага да въвеждат ПИН кода и без да компрометират сигурността на телефона.

И Next Lock Screen, и GoLocker имат тази функция.

Две лоши алтернативи: (1) принудете потребителя да въведе ПИН кода или (2) напълно отключете телефона, когато потребителят получи телефонно обаждане

Някакви предложения, моля?

Благодаря!


person alexyes    schedule 26.06.2015    source източник


Отговори (1)


Просто слушайте TelephonyManager състояния с излъчващ приемник и решете какво да правите. Регистрирайте приемник за:

<intent-filter>
    <action android:name="android.intent.action.PHONE_STATE"/>
</intent-filter>

...и всеки път, когато onReceive стартира проверка дали...

intent.getStringExtra(TelephonyManager.EXTRA_STATE) == TelephonyManager.EXTRA_STATE_RINGING

Това означава, че получавате обаждане, така че можете да скриете своя „заключен екран“, но това би било сериозен пропуск в сигурността – който и да има номера на лицето и отключен телефон с ПИН на SIM картата (напр. някой, който току-що го е откраднал и случайно знае вашия номер...) просто ще убие функцията ви „персонализиран ПИН“ чрез фалшиво повикване.

Ако искате да отговорите на повикване директно от вашето приложение, вие сте в много различни, но по-проблемни води от това - Android не позволява непривилегировани приложения (не-root) да отговарят на повиквания и всички методи, които познавам, са или хакове от типа на отражението, от типа на емулация "натискане на слушалки с bluetooth", или тип извикване на вече неработеща шел програма... Няма нищо, което да работи последователно на различни устройства, трябва да смесвате и съвпадат и някои устройства ще изискват условни изрази, защото опитването на едно от тях може да доведе до срив на конкретния rom. Ето защо на пазара вече не съществуват много истински приложения за „екран за повикване“, а само програми за набиране, които задействат екрана за повикване на системата преди повикване или наслагвания върху екрана на системата при получаване на повикване (които правят почти това, което аз описано в началото на този отговор).

person leRobot    schedule 04.05.2016