2013-05-11 2 views
0

Android에서는 시스템 설정으로 이동하여 화면 잠금을 활성화 할 수 있으므로 비밀번호, PIN 또는 화면 잠금 해제의 다른 수단이 필요할 수 있습니다. 이것은 일반적으로 장치를 대기 모드로 전환하거나 화면이 어두워 진 후 대기 모드로 들어가는 경우에 사용됩니다.Android 화면 잠금을 다시 사용하여 활동에 대한 액세스 금지

내 앱에서이 화면 잠금을 다시 사용하지만 특정 활동에 대한 액세스를 차단하는 것이 좋습니다. 버튼을 누르면 사용자가 PIN을 입력해야하는 화면 잠금 활동이 표시됩니다. 그들이 정확하게 그것을 입력하면, 나는 그때 그들이 활동에 액세스 할 수있게, 그렇지 않으면 그들은 그것을 사용할 수 없습니다.

이 시나리오에서 화면 잠금 활동을 재사용 할 수 있습니까? 그렇다면 어떤 API가 필요합니까? 안드로이드 2.3에 근무하면 좋을 것이다

편집 :

여러분 중 일부는 내 응용 프로그램이 PIN 또는 작동 비밀번호를 요구한다고 가정한다. 그건 사실이 아니야. 내 앱에서 특정 데이터를 보호하려는 사용자는 PIN이나 비밀번호가 있어야 볼 수 있습니다. 하지만 시스템에 이미 비밀번호/PIN 활동 또는 대화 상자가있는 경우 왜 내 비밀번호/PIN 활동 또는 대화 상자를 작성해야합니까?

답변

0

그런 종류의 보안은 설정 응용 프로그램과 같이 내장 된 시스템 구성 요소에서만 사용할 수 있습니다. 타사 앱은 암호 대화 상자가 표시되도록 요청할 수 없으며 사용자가 올바른 코드를 입력 한 경우에만 계속 작업 할 수 있습니다.

또한 적절한 양의 사용자는 기기에 패스 코드가 없습니다.

+0

가 표시되지 않는됩니다 할 때면 또한

PowerManager manager = (PowerManager) getSystemService(Context.POWER_SERVICE); manager.goToSleep(int amountOfTime); 

두 번째는

 PowerManager.WakeLock wl = manager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,Your Tag"); wl.acquire(); wl.release(); 

사용 권한입니다 :

당신이 화면을 잠글 수있는 두 가지 방법이 있습니다 그 논리. 그것은 단지 또 다른 시스템 구성 요소입니다. 패스 코드가없는 사용자는 관련이 없습니다. 이러한 기능을 사용하려는 내 앱을 사용하는 사용자는 사용하도록 설정합니다. 화면 잠금 장치의 목적은 go/no-go 체크 이상일 수 없습니다. 화면 잠금 표시와 관련된 보안 문제는 없습니다. – AndroidDev

+0

@AndroidDev 당신이 그 안의 논리를 보는지 아닌지는 부적절합니다. 시스템 응용 프로그램이 아니면 않는 한 여전히 할 수 있습니다. 이 기능을 제공하는 API는 없습니다. –

0

KeyguardManagerKeyguardManager.KeyguardLock에서 확인할 수 있습니다. API 레벨 13에서이 기능이 어떻게 작동하는지에 대한 변화가있는 것으로 보이지만 일반적으로 주제에 익숙하지 않아이 경로를 탐색하려는 경우 조사해야합니다.

앱에 자체적으로 포함 된 것을 구현하는 것이 좋습니다. UI 요소를 프로그래밍 방식으로 숨기고 암호 입력 필드 등을 사용하여 다른 UI를 표시하는 것은 매우 쉽습니다 (다른 활동과 함께).

+0

Raghav에 대한 제 의견에 게시 한 바와 같이 사용자가 암호를 가지고 있는지 여부는 전적으로 중요하지 않습니다.앱에서 PIN을 사용해야하는 기능을 사용하려면 PIN을 사용해야합니다. 내 앱이 일부 기능에 대해 PIN을 필요로한다고 가정합니다. 그건 사실이 아니야. 데이터의 일부를 보호하고자하는 사용자는 비밀번호 나 PIN을 요구할 경우이를 요구할 수 있습니다. 하지만 시스템 화면 잠금 활동이 이미 모든 것을 수행 할 때 바퀴를 다시 만들어야하는 이유는 무엇입니까? – AndroidDev

+0

Keyguard를 활성화 할 때 문제는 앱이 아닌 * 장치 *에서 사용할 수 있다는 것입니다. 본질적으로 장치를 잠그고 있습니다. 다른 작업을 원한다면 어쨌든 Keyguard를 비활성화해야하므로 다시 보이지 않게 할 수 있습니다. – Karakuri

+0

기본적으로, 당신이 제안하는 것은 바퀴를 다시 발명하는 것입니다. 화면 잠금은 모든 앱에서 재사용 할 수있는 일반적인 활동이었으며 OS 잠금 전용으로 사용되지 않았을 수 있습니다. 그 사람이 암호 또는 PIN을 알고 있는지 여부를 확인하는 이동/중지 방법으로 사용해야합니다. 분명히 이것은 Android의 디자인 결함입니다. – AndroidDev

-1

Android 2.2 자체에서 화면 잠금 기능을 사용할 수 있습니다. 따라서 2.3에서 쉽게 작동합니다.이 기능을 사용하는 방법은 기본적으로 두 가지 방법으로 수행 할 수 있습니다.

첫 번째가 있습니다.

<uses-permission android:name="android.permission.WAKE_LOCK" /> 
+0

화면 잠금에 관심이 없습니다. 나는 내 게시물이 분명하다고 믿습니다. – AndroidDev

+0

'PowerManager.goToSleep()'는 화면을 끄지 만 사용자가 암호 보안 또는 화면 잠금을 전혀 사용하지 않을 수 있습니다. 'WakeLock'은 잠금 화면과 아무 관련이 없습니다. 단지 장치 양식을 잠자는 것을 막을뿐입니다. – Karakuri