Example usage for android.os PowerManager newWakeLock

List of usage examples for android.os PowerManager newWakeLock

Introduction

In this page you can find the example usage for android.os PowerManager newWakeLock.

Prototype

public WakeLock newWakeLock(int levelAndFlags, String tag) 

Source Link

Document

Creates a new wake lock with the specified level and flags.

Usage

From source file:pandroid.agent.PandroidAgentListener.java

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
    WakeLock wakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyWakeLock");
    wakeLock.acquire();//from w  w  w .  j ava2 s  .c  om
    new loadConfThenContinueAsyncTask().execute();

    wakeLock.release();

    return START_NOT_STICKY;
}

From source file:org.videolan.myvlc.core.mediaController.AudioService.java

@Override
public void onCreate() {
    super.onCreate();

    // Get libVLC instance
    //        try {
    //            mLibVLC = Util.getLibVlcInstance();
    //        } catch (LibVlcException e) {
    //            e.printStackTrace();
    //        }/*from   w  w  w .  ja  v  a 2s .  c om*/

    //        mCallback = new HashMap<IAudioServiceCallback, Integer>();
    mMediaList = new ArrayList<Media>();
    mPrevious = new Stack<Media>();
    //        mEventHandler = EventHandler.getInstance();
    mRemoteControlClientReceiverComponent = new ComponentName(getPackageName(),
            RemoteControlClientReceiver.class.getName());

    // Make sure the audio player will acquire a wake-lock while playing. If we don't do
    // that, the CPU might go to sleep while the song is playing, causing playback to stop.
    PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
    mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, TAG);

    IntentFilter filter = new IntentFilter();
    filter.setPriority(Integer.MAX_VALUE);
    filter.addAction(ACTION_REMOTE_BACKWARD);
    filter.addAction(ACTION_REMOTE_PLAYPAUSE);
    filter.addAction(ACTION_REMOTE_PLAY);
    filter.addAction(ACTION_REMOTE_PAUSE);
    filter.addAction(ACTION_REMOTE_STOP);
    filter.addAction(ACTION_REMOTE_FORWARD);
    filter.addAction(ACTION_REMOTE_LAST_PLAYLIST);
    filter.addAction(ACTION_WIDGET_INIT);
    filter.addAction(Intent.ACTION_HEADSET_PLUG);
    filter.addAction(AudioManager.ACTION_AUDIO_BECOMING_NOISY);
    filter.addAction(MyVLCApp.SLEEP_INTENT);
    registerReceiver(serviceReceiver, filter);

    final SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(this);
    boolean stealRemoteControl = pref.getBoolean("enable_steal_remote_control", false);

    if (!Util.isFroyoOrLater() || stealRemoteControl) {
        /* Backward compatibility for API 7 */
        filter = new IntentFilter();
        if (stealRemoteControl)
            filter.setPriority(Integer.MAX_VALUE);
        filter.addAction(Intent.ACTION_MEDIA_BUTTON);
        mRemoteControlClientReceiver = new RemoteControlClientReceiver();
        registerReceiver(mRemoteControlClientReceiver, filter);
    }

    //AudioUtil.prepareCacheFolder(this);
}

From source file:eu.faircode.adblocker.ServiceSinkhole.java

synchronized private static PowerManager.WakeLock getLock(Context context) {
    if (wlInstance == null) {
        PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
        wlInstance = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,
                context.getString(R.string.app_name) + " wakelock");
        wlInstance.setReferenceCounted(true);
    }//w  w  w  . j  a v a  2s.  co m
    return wlInstance;
}

From source file:ca.nehil.rter.streamingapp2.StreamingActivity.java

@Override
protected void onResume() {
    super.onResume();

    if (mWakeLock == null) {
        PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
        mWakeLock = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, CLASS_LABEL);
        mWakeLock.acquire();/* ww w  .  j a va 2s.co  m*/
    }

    locationManager.requestLocationUpdates(provider, 0, 1, this);
    // register the overlay control for location updates as well, so we get
    // the geomagnetic field
    locationManager.requestLocationUpdates(provider, 0, 1000, overlay);

    // sensors
    mSensorManager.registerListener(overlay, mAcc, SensorManager.SENSOR_DELAY_NORMAL);
    mSensorManager.registerListener(overlay, mMag, SensorManager.SENSOR_DELAY_NORMAL);

    initLayout();

}

From source file:org.videolan.vlc.MediaService.java

@Override
public void onCreate() {
    super.onCreate();

    // Get libVLC instance
    try {//from   ww w  . j a  va2 s . co m
        mLibVLC = Util.getLibVlcInstance();
    } catch (LibVlcException e) {
        e.printStackTrace();
    }

    Thread.setDefaultUncaughtExceptionHandler(new VlcCrashHandler());

    mCallback = new HashMap<IMediaServiceCallback, Integer>();
    mMediaList = new ArrayList<Media>();
    mPrevious = new Stack<Media>();
    mEventHandler = EventHandler.getInstance();
    mRemoteControlClientReceiverComponent = new ComponentName(getPackageName(),
            RemoteControlClientReceiver.class.getName());

    // Make sure the audio player will acquire a wake-lock while playing. If we don't do
    // that, the CPU might go to sleep while the song is playing, causing playback to stop.
    PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
    mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, TAG);

    IntentFilter filter = new IntentFilter();
    filter.setPriority(Integer.MAX_VALUE);
    filter.addAction(ACTION_REMOTE_BACKWARD);
    filter.addAction(ACTION_REMOTE_PLAYPAUSE);
    filter.addAction(ACTION_REMOTE_PLAY);
    filter.addAction(ACTION_REMOTE_PAUSE);
    filter.addAction(ACTION_REMOTE_STOP);
    filter.addAction(ACTION_REMOTE_FORWARD);
    filter.addAction(ACTION_REMOTE_LAST_PLAYLIST);
    filter.addAction(Intent.ACTION_HEADSET_PLUG);
    filter.addAction(AudioManager.ACTION_AUDIO_BECOMING_NOISY);
    filter.addAction(VLCApplication.SLEEP_INTENT);
    registerReceiver(serviceReceiver, filter);

    final SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(this);
    boolean stealRemoteControl = pref.getBoolean("enable_steal_remote_control", false);

    if (!Util.isFroyoOrLater() || stealRemoteControl) {
        /* Backward compatibility for API 7 */
        filter = new IntentFilter();
        if (stealRemoteControl)
            filter.setPriority(Integer.MAX_VALUE);
        filter.addAction(Intent.ACTION_MEDIA_BUTTON);
        mRemoteControlClientReceiver = new RemoteControlClientReceiver();
        registerReceiver(mRemoteControlClientReceiver, filter);
    }

    AudioUtil.prepareCacheFolder(this);
}

From source file:com.ucmap.dingdinghelper.services.DingDingHelperAccessibilityService.java

private void wakeAndUnlock() {
    //???//from  w  w w  .j a  v  a  2  s  .  c o m
    PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);

    //?PowerManager.WakeLock???|??Tag
    PowerManager.WakeLock wl = pm
            .newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP | PowerManager.SCREEN_BRIGHT_WAKE_LOCK, "bright");

    //?
    wl.acquire(1000);

    //??
    KeyguardManager km = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);
    kl = km.newKeyguardLock("unLock");

    //?
    kl.disableKeyguard();

}

From source file:ch.ethz.twimight.net.opportunistic.ScanningService.java

/**
 * Acquire the Wake Lock/*from  w ww.j a  v  a 2 s .c om*/
 * 
 * @param context
 */
void getWakeLock(Context context) {

    releaseWakeLock();

    PowerManager mgr = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
    wakeLock = mgr.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, WAKE_LOCK);
    wakeLock.acquire();
}

From source file:com.tgx.tina.android.plugin.downloader.DownloadThread.java

/**
 * Executes the download in a separate thread
 *///w  w w  . jav  a2 s .c  om
public void run() {
    Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND);

    int finalStatus = GlobalDownload.STATUS_UNKNOWN_ERROR;
    boolean countRetry = false;
    int retryAfter = 0;
    int redirectCount = mInfo.mRedirectCount;
    String newUri = null;
    boolean gotData = false;
    String filename = null;
    String mimeType = sanitizeMimeType(mInfo.mMimeType);
    FileOutputStream stream = null;
    DefaultHttpClient client = null;
    PowerManager.WakeLock wakeLock = null;
    Uri contentUri = Uri.parse(GlobalDownload.CONTENT_URI + "/" + mInfo.mId);

    try {
        boolean continuingDownload = false;
        String headerAcceptRanges = null;
        String headerContentDisposition = null;
        String headerContentLength = null;
        String headerContentLocation = null;
        String headerETag = null;
        String headerTransferEncoding = null;

        byte data[] = new byte[Constants.BUFFER_SIZE];

        int bytesSoFar = 0;

        PowerManager pm = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE);
        wakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, Constants.TAG);
        wakeLock.acquire();

        filename = mInfo.mFileName;
        if (filename != null) {
            if (!Helpers.isFilenameValid(filename)) {
                finalStatus = GlobalDownload.STATUS_FILE_ERROR;
                notifyDownloadCompleted(finalStatus, false, 0, 0, false, filename, null, mInfo.mMimeType);
                return;
            }
            // We're resuming a download that got interrupted
            File f = new File(filename);
            if (f.exists()) {
                long fileLength = f.length();
                if (fileLength == 0) {
                    // The download hadn't actually started, we can restart from scratch
                    f.delete();
                    filename = null;
                } else if (mInfo.mETag == null && !mInfo.mNoIntegrity) {
                    // Tough luck, that's not a resumable download
                    //#debug
                    base.tina.core.log.LogPrinter.d(Constants.TAG,
                            "can't resume interrupted non-resumable download");
                    f.delete();
                    finalStatus = GlobalDownload.STATUS_PRECONDITION_FAILED;
                    notifyDownloadCompleted(finalStatus, false, 0, 0, false, filename, null, mInfo.mMimeType);
                    return;
                } else {
                    // All right, we'll be able to resume this download
                    stream = new FileOutputStream(filename, true);
                    bytesSoFar = (int) fileLength;
                    if (mInfo.mTotalBytes != -1) {
                        headerContentLength = Integer.toString(mInfo.mTotalBytes);
                    }
                    headerETag = mInfo.mETag;
                    continuingDownload = true;
                }
            }
        }

        int bytesNotified = bytesSoFar;
        // starting with MIN_VALUE means that the first write will commit
        //     progress to the database
        long timeLastNotification = 0;

        client = newHttpClient(userAgent());
        /*
         * This loop is run once for every individual HTTP request that gets
         * sent. The very first HTTP request is a "virgin" request, while
         * every subsequent request is done with the original ETag and a
         * byte-range.
         */
        http_request_loop: while (true) {
            // Prepares the request and fires it.
            HttpGet request = new HttpGet(mInfo.mUri);

            //#debug verbose
            base.tina.core.log.LogPrinter.v(Constants.TAG, "initiating download for " + mInfo.mUri);

            if (mInfo.mCookies != null) {
                request.addHeader("Cookie", mInfo.mCookies);
            }
            if (mInfo.mReferer != null) {
                request.addHeader("Referer", mInfo.mReferer);
            }
            if (continuingDownload) {
                if (headerETag != null) {
                    request.addHeader("If-Match", headerETag);
                }
                request.addHeader("Range", "bytes=" + bytesSoFar + "-");
            }

            HttpResponse response;
            try {
                response = client.execute(request);
            } catch (IllegalArgumentException ex) {
                //#debug
                base.tina.core.log.LogPrinter.d(Constants.TAG,
                        "Arg exception trying to execute request for " + mInfo.mId + " : " + ex);
                finalStatus = GlobalDownload.STATUS_BAD_REQUEST;
                request.abort();
                break http_request_loop;
            } catch (IOException ex) {
                //#ifdef debug
                //#if debug<=2
                if (Helpers.isNetworkAvailable(mContext)) {
                    base.tina.core.log.LogPrinter.i(Constants.TAG, "Execute Failed " + mInfo.mId + ", Net Up");
                } else {
                    base.tina.core.log.LogPrinter.i(Constants.TAG,
                            "Execute Failed " + mInfo.mId + ", Net Down");
                }
                //#endif
                //#endif

                if (!Helpers.isNetworkAvailable(mContext)) {
                    finalStatus = GlobalDownload.STATUS_RUNNING_PAUSED;
                } else if (mInfo.mNumFailed < Constants.MAX_RETRIES) {
                    finalStatus = GlobalDownload.STATUS_RUNNING_PAUSED;
                    countRetry = true;
                } else {
                    //#debug
                    base.tina.core.log.LogPrinter.d(Constants.TAG,
                            "IOException trying to execute request for " + mInfo.mId + " : " + ex);
                    finalStatus = GlobalDownload.STATUS_HTTP_DATA_ERROR;
                }
                request.abort();
                break http_request_loop;
            }

            int statusCode = response.getStatusLine().getStatusCode();
            if (statusCode == 503 && mInfo.mNumFailed < Constants.MAX_RETRIES) {
                //#debug verbose
                base.tina.core.log.LogPrinter.v(Constants.TAG, "got HTTP response code 503");
                finalStatus = GlobalDownload.STATUS_RUNNING_PAUSED;
                countRetry = true;
                Header header = response.getFirstHeader("Retry-After");
                if (header != null) {
                    try {
                        //#debug verbose
                        base.tina.core.log.LogPrinter.v(Constants.TAG, "Retry-After :" + header.getValue());
                        retryAfter = Integer.parseInt(header.getValue());
                        if (retryAfter < 0) {
                            retryAfter = 0;
                        } else {
                            if (retryAfter < Constants.MIN_RETRY_AFTER) {
                                retryAfter = Constants.MIN_RETRY_AFTER;
                            } else if (retryAfter > Constants.MAX_RETRY_AFTER) {
                                retryAfter = Constants.MAX_RETRY_AFTER;
                            }
                            retryAfter += Helpers.sRandom.nextInt(Constants.MIN_RETRY_AFTER + 1);
                            retryAfter *= 1000;
                        }
                    } catch (NumberFormatException ex) {
                        // ignored - retryAfter stays 0 in this case.
                    }
                }
                request.abort();
                break http_request_loop;
            }
            if (statusCode == 301 || statusCode == 302 || statusCode == 303 || statusCode == 307) {
                //#debug verbose
                base.tina.core.log.LogPrinter.v(Constants.TAG, "got HTTP redirect " + statusCode);
                if (redirectCount >= Constants.MAX_REDIRECTS) {
                    //#debug
                    base.tina.core.log.LogPrinter.d(Constants.TAG,
                            "too many redirects for download " + mInfo.mId);
                    finalStatus = GlobalDownload.STATUS_TOO_MANY_REDIRECTS;
                    request.abort();
                    break http_request_loop;
                }
                Header header = response.getFirstHeader("Location");
                if (header != null) {
                    //#debug verbose
                    base.tina.core.log.LogPrinter.v(Constants.TAG, "Location :" + header.getValue());
                    try {
                        newUri = new URI(mInfo.mUri).resolve(new URI(header.getValue())).toString();
                    } catch (URISyntaxException ex) {
                        //#debug
                        base.tina.core.log.LogPrinter.d(Constants.TAG,
                                "Couldn't resolve redirect URI for download " + mInfo.mId);
                        finalStatus = GlobalDownload.STATUS_BAD_REQUEST;
                        request.abort();
                        break http_request_loop;
                    }
                    ++redirectCount;
                    finalStatus = GlobalDownload.STATUS_RUNNING_PAUSED;
                    request.abort();
                    break http_request_loop;
                }
            }
            if ((!continuingDownload && statusCode != GlobalDownload.STATUS_SUCCESS)
                    || (continuingDownload && statusCode != 206)) {
                //#debug
                base.tina.core.log.LogPrinter.d(Constants.TAG,
                        "http error " + statusCode + " for download " + mInfo.mId);
                if (GlobalDownload.isStatusError(statusCode)) {
                    finalStatus = statusCode;
                } else if (statusCode >= 300 && statusCode < 400) {
                    finalStatus = GlobalDownload.STATUS_UNHANDLED_REDIRECT;
                } else if (continuingDownload && statusCode == GlobalDownload.STATUS_SUCCESS) {
                    finalStatus = GlobalDownload.STATUS_PRECONDITION_FAILED;
                } else {
                    finalStatus = GlobalDownload.STATUS_UNHANDLED_HTTP_CODE;
                }
                request.abort();
                break http_request_loop;
            } else {
                // Handles the response, saves the file
                //#debug verbose
                base.tina.core.log.LogPrinter.v(Constants.TAG, "received response for " + mInfo.mUri);

                if (!continuingDownload) {
                    Header header = response.getFirstHeader("Accept-Ranges");
                    if (header != null) {
                        headerAcceptRanges = header.getValue();
                    }
                    header = response.getFirstHeader("Content-Disposition");
                    if (header != null) {
                        headerContentDisposition = header.getValue();
                    }
                    header = response.getFirstHeader("Content-Location");
                    if (header != null) {
                        headerContentLocation = header.getValue();
                    }
                    if (mimeType == null) {
                        header = response.getFirstHeader("Content-Type");
                        if (header != null) {
                            mimeType = sanitizeMimeType(header.getValue());
                        }
                    }
                    header = response.getFirstHeader("ETag");
                    if (header != null) {
                        headerETag = header.getValue();
                    }
                    header = response.getFirstHeader("Transfer-Encoding");
                    if (header != null) {
                        headerTransferEncoding = header.getValue();
                    }
                    if (headerTransferEncoding == null) {
                        header = response.getFirstHeader("Content-Length");
                        if (header != null) {
                            headerContentLength = header.getValue();
                        }
                    } else {
                        // Ignore content-length with transfer-encoding - 2616 4.4 3
                        //#debug verbose
                        base.tina.core.log.LogPrinter.v(Constants.TAG,
                                "ignoring content-length because of xfer-encoding");
                    }
                    //#ifdef debug
                    //#if debug<=2
                    base.tina.core.log.LogPrinter.v(Constants.TAG, "Accept-Ranges: " + headerAcceptRanges);
                    base.tina.core.log.LogPrinter.v(Constants.TAG,
                            "Content-Disposition: " + headerContentDisposition);
                    base.tina.core.log.LogPrinter.v(Constants.TAG, "Content-Length: " + headerContentLength);
                    base.tina.core.log.LogPrinter.v(Constants.TAG,
                            "Content-Location: " + headerContentLocation);
                    base.tina.core.log.LogPrinter.v(Constants.TAG, "Content-Type: " + mimeType);
                    base.tina.core.log.LogPrinter.v(Constants.TAG, "ETag: " + headerETag);
                    base.tina.core.log.LogPrinter.v(Constants.TAG,
                            "Transfer-Encoding: " + headerTransferEncoding);
                    //#endif
                    //#endif

                    if (!mInfo.mNoIntegrity && headerContentLength == null && (headerTransferEncoding == null
                            || !headerTransferEncoding.equalsIgnoreCase("chunked"))) {
                        //#debug
                        base.tina.core.log.LogPrinter.d(Constants.TAG,
                                "can't know size of download, giving up");
                        finalStatus = GlobalDownload.STATUS_LENGTH_REQUIRED;
                        request.abort();
                        break http_request_loop;
                    }

                    DownloadFileInfo fileInfo = Helpers.generateSaveFile(mContext, mInfo.mUri, mInfo.mHint,
                            headerContentDisposition, headerContentLocation, mimeType, mInfo.mDestination,
                            (headerContentLength != null) ? Integer.parseInt(headerContentLength) : 0);
                    if (fileInfo.mFileName == null) {
                        finalStatus = fileInfo.mStatus;
                        request.abort();
                        break http_request_loop;
                    }
                    filename = fileInfo.mFileName;
                    stream = fileInfo.mStream;
                    //#debug verbose
                    base.tina.core.log.LogPrinter.v(Constants.TAG, "writing " + mInfo.mUri + " to " + filename);

                    ContentValues values = new ContentValues();
                    values.put(GlobalDownload._DATA, filename);
                    if (headerETag != null) {
                        values.put(Constants.ETAG, headerETag);
                    }
                    if (mimeType != null) {
                        values.put(GlobalDownload.COLUMN_MIME_TYPE, mimeType);
                    }
                    int contentLength = -1;
                    if (headerContentLength != null) {
                        contentLength = Integer.parseInt(headerContentLength);
                    }
                    values.put(GlobalDownload.COLUMN_TOTAL_BYTES, contentLength);
                    mContext.getContentResolver().update(contentUri, values, null, null);
                }

                InputStream entityStream;
                try {
                    entityStream = response.getEntity().getContent();
                } catch (IOException ex) {
                    //#ifdef debug
                    //#if debug<=2
                    if (Helpers.isNetworkAvailable(mContext)) {
                        base.tina.core.log.LogPrinter.i(Constants.TAG, "Get Failed " + mInfo.mId + ", Net Up");
                    } else {
                        base.tina.core.log.LogPrinter.i(Constants.TAG,
                                "Get Failed " + mInfo.mId + ", Net Down");
                    }
                    //#endif
                    //#endif
                    if (!Helpers.isNetworkAvailable(mContext)) {
                        finalStatus = GlobalDownload.STATUS_RUNNING_PAUSED;
                    } else if (mInfo.mNumFailed < Constants.MAX_RETRIES) {
                        finalStatus = GlobalDownload.STATUS_RUNNING_PAUSED;
                        countRetry = true;
                    } else {
                        //#debug
                        base.tina.core.log.LogPrinter.d(Constants.TAG,
                                "IOException getting entity for download " + mInfo.mId + " : " + ex);
                        finalStatus = GlobalDownload.STATUS_HTTP_DATA_ERROR;
                    }
                    request.abort();
                    break http_request_loop;
                }
                for (;;) {
                    int bytesRead;
                    try {
                        bytesRead = entityStream.read(data);
                    } catch (IOException ex) {
                        //#ifdef debug
                        //#if debug<=2
                        if (Helpers.isNetworkAvailable(mContext)) {
                            base.tina.core.log.LogPrinter.i(Constants.TAG,
                                    "Read Failed " + mInfo.mId + ", Net Up");
                        } else {
                            base.tina.core.log.LogPrinter.i(Constants.TAG,
                                    "Read Failed " + mInfo.mId + ", Net Down");
                        }
                        //#endif
                        //#endif

                        ContentValues values = new ContentValues();
                        values.put(GlobalDownload.COLUMN_CURRENT_BYTES, bytesSoFar);
                        mContext.getContentResolver().update(contentUri, values, null, null);
                        if (!mInfo.mNoIntegrity && headerETag == null) {
                            //#debug
                            base.tina.core.log.LogPrinter.d(Constants.TAG,
                                    "download IOException for download " + mInfo.mId + " : " + ex);
                            finalStatus = GlobalDownload.STATUS_PRECONDITION_FAILED;
                        } else if (!Helpers.isNetworkAvailable(mContext)) {
                            finalStatus = GlobalDownload.STATUS_RUNNING_PAUSED;
                        } else if (mInfo.mNumFailed < Constants.MAX_RETRIES) {
                            finalStatus = GlobalDownload.STATUS_RUNNING_PAUSED;
                            countRetry = true;
                        } else {
                            //#debug
                            base.tina.core.log.LogPrinter.d(Constants.TAG,
                                    "download IOException for download " + mInfo.mId + " : " + ex);
                            finalStatus = GlobalDownload.STATUS_HTTP_DATA_ERROR;
                        }
                        request.abort();
                        break http_request_loop;
                    }
                    if (bytesRead == -1) { // success
                        ContentValues values = new ContentValues();
                        values.put(GlobalDownload.COLUMN_CURRENT_BYTES, bytesSoFar);
                        if (headerContentLength == null) {
                            values.put(GlobalDownload.COLUMN_TOTAL_BYTES, bytesSoFar);
                        }
                        mContext.getContentResolver().update(contentUri, values, null, null);
                        if ((headerContentLength != null)
                                && (bytesSoFar != Integer.parseInt(headerContentLength))) {
                            if (!mInfo.mNoIntegrity && headerETag == null) {
                                //#debug
                                base.tina.core.log.LogPrinter.d(Constants.TAG,
                                        "mismatched content length for " + mInfo.mId);

                                finalStatus = GlobalDownload.STATUS_LENGTH_REQUIRED;
                            } else if (!Helpers.isNetworkAvailable(mContext)) {
                                finalStatus = GlobalDownload.STATUS_RUNNING_PAUSED;
                            } else if (mInfo.mNumFailed < Constants.MAX_RETRIES) {
                                finalStatus = GlobalDownload.STATUS_RUNNING_PAUSED;
                                countRetry = true;
                            } else {
                                //#debug
                                base.tina.core.log.LogPrinter.d(Constants.TAG,
                                        "closed socket for download " + mInfo.mId);

                                finalStatus = GlobalDownload.STATUS_HTTP_DATA_ERROR;
                            }
                            break http_request_loop;
                        }
                        break;
                    }
                    gotData = true;
                    for (;;) {
                        try {
                            if (stream == null) {
                                stream = new FileOutputStream(filename, true);
                            }
                            stream.write(data, 0, bytesRead);
                            break;
                        } catch (IOException ex) {
                            finalStatus = GlobalDownload.STATUS_FILE_ERROR;
                            break http_request_loop;
                        }
                    }
                    bytesSoFar += bytesRead;
                    long now = System.currentTimeMillis();
                    if (bytesSoFar - bytesNotified > Constants.MIN_PROGRESS_STEP
                            && now - timeLastNotification > Constants.MIN_PROGRESS_TIME) {
                        ContentValues values = new ContentValues();
                        values.put(GlobalDownload.COLUMN_CURRENT_BYTES, bytesSoFar);
                        mContext.getContentResolver().update(contentUri, values, null, null);
                        bytesNotified = bytesSoFar;
                        timeLastNotification = now;
                    }

                    //#debug verbose
                    base.tina.core.log.LogPrinter.v(Constants.TAG,
                            "downloaded " + bytesSoFar + " for " + mInfo.mUri);

                    synchronized (mInfo) {
                        if (mInfo.mControl == GlobalDownload.CONTROL_PAUSED) {
                            //#debug verbose
                            base.tina.core.log.LogPrinter.v(Constants.TAG, "paused " + mInfo.mUri);

                            finalStatus = GlobalDownload.STATUS_RUNNING_PAUSED;
                            request.abort();
                            break http_request_loop;
                        }
                    }
                    if (mInfo.mStatus == GlobalDownload.STATUS_CANCELED) {
                        //#debug
                        base.tina.core.log.LogPrinter.d(Constants.TAG, "canceled id " + mInfo.mId);

                        finalStatus = GlobalDownload.STATUS_CANCELED;
                        break http_request_loop;
                    }
                }
                //#debug verbose
                base.tina.core.log.LogPrinter.v(Constants.TAG, "download completed for " + mInfo.mUri);

                finalStatus = GlobalDownload.STATUS_SUCCESS;
            }
            break;
        }
    } catch (FileNotFoundException ex) {
        //#debug
        base.tina.core.log.LogPrinter.d(Constants.TAG, "FileNotFoundException for " + filename + " : " + ex);

        finalStatus = GlobalDownload.STATUS_FILE_ERROR;
        // falls through to the code that reports an error
    } catch (RuntimeException ex) {
        //sometimes the socket code throws unchecked exceptions
        //#debug
        base.tina.core.log.LogPrinter.d(Constants.TAG, "Exception for id " + mInfo.mId, ex);

        finalStatus = GlobalDownload.STATUS_UNKNOWN_ERROR;
        // falls through to the code that reports an error
    } finally {
        mInfo.mHasActiveThread = false;
        if (wakeLock != null) {
            wakeLock.release();
            wakeLock = null;
        }
        if (client != null) {
            client.getConnectionManager().shutdown();//???
            client = null;
        }
        try {
            // close the file
            if (stream != null) {
                stream.close();
            }
        } catch (IOException ex) {
            //#debug verbose
            base.tina.core.log.LogPrinter.v(Constants.TAG,
                    "exception when closing the file after download : " + ex);

            // nothing can really be done if the file can't be closed
        }
        if (filename != null) {
            // if the download wasn't successful, delete the file
            if (GlobalDownload.isStatusError(finalStatus)) {
                new File(filename).delete();
                filename = null;
            } else if (GlobalDownload.isStatusSuccess(finalStatus)) {
                // make sure the file is readable
                //                    FileUtils.setPermissions(filename, 0644, -1, -1);//

                // Sync to storage after completion
                try {
                    new FileOutputStream(filename, true).getFD().sync();
                } catch (FileNotFoundException ex) {
                    //#debug warn
                    base.tina.core.log.LogPrinter.w(Constants.TAG, "file " + filename + " not found: " + ex);
                } catch (SyncFailedException ex) {
                    //#debug warn
                    base.tina.core.log.LogPrinter.w(Constants.TAG, "file " + filename + " sync failed: " + ex);
                } catch (IOException ex) {
                    //#debug warn
                    base.tina.core.log.LogPrinter.w(Constants.TAG,
                            "IOException trying to sync " + filename + ": " + ex);
                } catch (RuntimeException ex) {
                    //#debug warn
                    base.tina.core.log.LogPrinter.w(Constants.TAG, "exception while syncing file: ", ex);
                }
            }
        }
        notifyDownloadCompleted(finalStatus, countRetry, retryAfter, redirectCount, gotData, filename, newUri,
                mimeType);
    }
}

From source file:com.intel.xdk.device.Device.java

private void aquireWakeLock() {
    PowerManager pm = (PowerManager) activity.getSystemService(Context.POWER_SERVICE);
    wl = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "My Tag");
    try {/*  w ww.  ja v a 2  s  .  c om*/
        wl.acquire();
    } catch (Exception e) {
    }
}

From source file:ca.nehil.rter.streamingapp.StreamingActivity.java

@Override
protected void onResume() {
    super.onResume();
    if (mWakeLock == null) {
        PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
        mWakeLock = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, CLASS_LABEL);
        mWakeLock.acquire();//from  w  w  w .  j  a  v  a  2  s.  c  o m
    }

    initLayout();
    mSensorSource.initListeners();
    attemptHandshake(); // Start recording.
}