영어 글을 잘 못하면 사전에 사과드립니다. 나는 특정 시간에 알람을 생각 나게하는 간단한 태스크 앱을 작성 중이다.웨이크 잠금 장치가 제대로 작동하지 않습니다.
나는 알람 관리기로 알람을 설정 아래 :
private static void setAlarm(Context context, Calendar calendar,
PendingIntent pIntent) {
AlarmManager alarmManager = (AlarmManager) context
.getSystemService(Context.ALARM_SERVICE);
if (android.os.Build.VERSION.SDK_INT >=
android.os.Build.VERSION_CODES.KITKAT) {
alarmManager.setExact(AlarmManager.RTC_WAKEUP,
calendar.getTimeInMillis(), pIntent);
} else {
alarmManager.set(AlarmManager.RTC_WAKEUP,
calendar.getTimeInMillis(), pIntent);
}
}
다음 AlarmManagerHelper :
public class AlarmManagerHelper extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
String title = intent.getStringExtra("Title");
int hour = intent.getIntExtra("Hour", 0);
int min = intent.getIntExtra("Minute", 0);
String alarmTone = intent.getStringExtra("AlarmTone");
Intent i = new Intent();
i.setClassName("com.example.tasks",
"com.example.tasks.AlarmScreenActivity");
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.putExtra("Title", title);
i.putExtra("Hour", hour);
i.putExtra("Minute", min);
i.putExtra("AlarmTone", alarmTone);
context.startActivity(i);
}
}
및 AlarmScreenActivity은 다음과 같습니다 AlarmManagerHelper 및 AlarmScreenActivity이 표시와 다음
public class AlarmScreenActivity extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// get intent
pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "My Tag");
wl.acquire();
mPlayer = new MediaPlayer();
try {
if (task_Tone != null && !task_Tone.equals("")) {
android.net.Uri toneUri = android.net.Uri.parse(task_Tone);
if (toneUri != null) {
mPlayer.setDataSource(this, toneUri);
mPlayer.setAudioStreamType(AudioManager.STREAM_ALARM);
mPlayer.setLooping(true);
mPlayer.prepare();
mPlayer.start();
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
// some code
public void onClickDissmis(View view) {
mPlayer.stop();
finish();
}
protected void onDestroy() {
super.onDestroy();
wl.release();
}
}
.
내 문제는 :특정 시간에 일어나야하고 inting을 울리지 않아야하므로 전원 버튼을 누르면 작동하는 화면이 나타납니다. (디버그 모드에 있고 시스템에 연결된 장치가 제대로 작동하는 경우) 내 문제를 완벽하게 설명하기를 바랍니다.
답장을 보내 주셔서 감사합니다.이 AlarmScreenActivity의 버튼에 onclick : 'public void onClickDissmis (보기보기) { \t \t mPlayer.stop(); \t \t finish(); \t \t \t} '코드 아래에 넣어야한다고 생각합니다. – AsmA
나는 내 게시물을 편집했습니다 ... 더 잘 설명 된 희망 ... 죄송합니다. – AsmA