2013-04-07 4 views
5

कृपया, मेरी मदद करें। मैं एक प्रसारण रिसीवर है:एंड्रॉइड कैसे जगाएं और गतिविधि को कैसे दिखाएं?

public class BrcRec extends BroadcastReceiver{ 
public static WakeLock wakeLock; 
@Override 
public void onReceive(Context context, Intent intent) { 


    PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE); 
    wakeLock = pm.newWakeLock((PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP), "TAG"); 
    wakeLock.acquire(); 
    //Осуществляем блокировку 
    KeyguardManager keyguardManager = (KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE); 
    KeyguardLock keyguardLock = keyguardManager.newKeyguardLock("TAG"); 
    keyguardLock.disableKeyguard(); 


    //Здесь можно делать обработку. 
    Bundle extras = intent.getExtras(); 
    StringBuilder msgStr = new StringBuilder(); 

    msgStr.append("Одноразовый будильник: "); 
    Format formatter = new SimpleDateFormat("hh:mm:ss a"); 
    msgStr.append(formatter.format(new Date())); 
    // Creating activity must be there, i think 
    Toast.makeText(context, msgStr, Toast.LENGTH_LONG).show(); 
    //Разблокируем поток. 
    wakeLock.release(); 
} 

और फिर यह काम में है, मेरी एंड्रॉयड जगा नहीं है: बटन एक बार झपकी और कहा कि सभी है। गलती कहां है?

मैं एंड्रॉइड जागना चाहता हूं और परिणामस्वरूप कुछ गतिविधि को कॉल करना चाहता हूं .. धन्यवाद।

उत्तर

14

गतिविधि है कि आप को दिखाने के लिए आप इन झंडे जोड़ सकते हैं चाहते हैं:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD | 
       WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED | 
       WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON | 
       WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 

गतिविधि डिवाइस जगाने के लिए कारण होगा कि।

2

यह ध्यान देने योग्य है कि "जोएलरीव्स" ने PowerManager और Wakelock API का उपयोग किये बिना भी काम लिखा है। गतिविधि के चालू होने पर ध्वज जोड़कर, जब भी यह शुरू होता है, तो यह फोन से कीगार्ड और लॉक को पूरी तरह हटा देगा।

संबंधित मुद्दे