마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 service 질문드립니다.

0 추천

package com.example.lock;

import android.app.Activity;
import android.app.KeyguardManager;
import android.app.Service;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.IBinder;
import android.widget.Toast;

public class Lock_Service extends Service {
 private KeyguardManager km = null;
 private KeyguardManager.KeyguardLock keylock = null;
 private BroadcastReceiver br = new BroadcastReceiver() {

  @Override
  public void onReceive(Context context, Intent intent) {
   if (intent.getAction().equals(intent.ACTION_SCREEN_ON)) {
    Intent i = new Intent(context, Lock_Main.class);
    i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    context.startActivity(i);
   }

  }
 };

 public IBinder onBind(Intent intent) {

  // TODO Auto-generated method stub
  return null;
 }

 @Override
 public void onCreate() {
  // TODO Auto-generated method stub
  super.onCreate();

  km = (KeyguardManager) this.getSystemService(Activity.KEYGUARD_SERVICE);
  if (km != null) {
   keylock.disableKeyguard();
  }

 }

 @Override
 public int onStartCommand(Intent intent, int flags, int startId) {
  IntentFilter filter = new IntentFilter("com.example.action.isAlive");
  filter.addAction(Intent.ACTION_SCREEN_OFF);
  registerReceiver(br, filter);
  return Service.START_NOT_STICKY;
 }

 public void onDestroy() {
  if (keylock != null) {
   keylock.reenableKeyguard();
  }

  if (br != null)
   unregisterReceiver(br);
 }

}

화면 잠금기능을 구현하고 있는데.

어디가 문제인가요 ㅠ 화면 잠금이 나오지 않습니다.

메인 부분에서는  setContentView(R.layout.activity_main); 화면을 불러오며,

  startService(new Intent(this, Lock_Service.class));

서비스하여 불러옵니다.

KeyguardLock이 이렇게 노랗게 표시됩니다.

익명사용자 님이 2013년 7월 10일 질문

2개의 답변

0 추천

This class was deprecated in API level 13. Use FLAG_DISMISS_KEYGUARD and/orFLAG_SHOW_WHEN_LOCKED instead; this allows you to seamlessly hide the keyguard as your application moves in and out of the foreground and does not require that any special permissions be requested. Handle returned by newKeyguardLock(String) that allows you to disable / reenable the keyguard. 

건방진프로그래머 (26,630 포인트) 님이 2013년 7월 11일 답변
혹시 이 소스에 대해선 문제가없는건가요??
api 레벨을 조정한뒤 실행해 보아도 잘되지 않네요 ㅠ
0 추천
Deprecated 될때 저리 나타납니다.

해당 함수를 가급적 사용하지 말라는 것 이구요

보통의 경우 http://developer.android.com 해당 함수를 검색시 우회하는 함수에 대해서 설명 되어 있습니다.
aucd29 (218,390 포인트) 님이 2013년 7월 11일 답변
...