PDA

View Full Version : بیدار شدن گوشی



ghader62
شنبه 03 خرداد 1393, 12:46 عصر
سلام دوستان
من یک سرویسی تعریف کردم که پس از مدت زمانی یک اکتیویتی رو اجرا میکنه
مشکل من استفاده از متد زیر جهت بیدار شدن گوشی هستش من متد رو بعد از (R.layout.)setContentView
فراخوانی میکنم بدلیل vibrator و فیلمبرداری هم نمیتونم از log استفاده کنم که دلیل کرش رو بفهمم
برنامه برای اکتیویتی ساده اجرا میشه و گوشی بیدار میشه ولی برای اکتیویتی کمی پیچیده کرش میکنه
دوستان آیا متد زیر مشکلی داره
private void wakeDevice() {
PowerManager powerManager = (PowerManager) G.gContext.getSystemService(Context.POWER_SERVICE) ;
WakeLock wakeLock = powerManager.newWakeLock((PowerManager.SCREEN_BRIG HT_WAKE_LOCK | PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP), "TAG");
wakeLock.acquire();

KeyguardManager keyguardManager = (KeyguardManager) G.gContext.getSystemService(Context.KEYGUARD_SERVI CE);
KeyguardLock keyguardLock = keyguardManager.newKeyguardLock("TAG");
keyguardLock.disableKeyguard();
runOnUiThread(new Runnable() {

@Override
public void run() {
getWindow().addFlags(
WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
| WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
| WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
| WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
}
});
}
آیا دوستان پیشنهاد دیگه ای جهت بیدار شدن گوشی دارند؟؟؟
ممنون

smemamian
شنبه 03 خرداد 1393, 18:37 عصر
سلام


FULL_WAKE_LOCKی که تعریف کردید deprecation شده است و دقیق نیازتون رو نمی دونم ولی از PARTIAL_WAKE_LOCK استفاده کنید که باعث فعال سازی CPU می شود تا زمانی که Wake Lockی که شما تعریف کردید Release شود.
تابع Release رو فراخوانی کردید ؟



برنامه برای اکتیویتی ساده اجرا میشه و گوشی بیدار میشه ولی برای اکتیویتی کمی پیچیده کرش میکنه
مطمئن هستید مشکل از Wake Lock هست ؟