Hi Jason,

Thanks for wakeLock recommendation.  

I may end up using wakeLock.  Especially if it gives me a wider range of 
supported Android devices and versions.


I ended up using a “final boolean” :

http://stackoverflow.com/questions/7761723/android-howto-pass-data-to-the-runnable-in-runonuithread
 
<http://stackoverflow.com/questions/7761723/android-howto-pass-data-to-the-runnable-in-runonuithread>

    /// Keep device from going to sleep during long
    /// periods of no touch-interaction such as a Bluetooth file transfer.
    ///
    ///
    /// \sa https://developer.android.com/training/scheduling/wakelock.html
    ///
    /// Unlike wake locks, FLAG_KEEP_SCREEN_ON doesn't require special 
permission, and
    /// the platform correctly manages the user moving between applications, 
without
    /// your app needing to worry about releasing unused resources.
    ///
    /// \param[in] keepScreenOn set true to prevent power saving
    public static void setKeepScreenOn(final boolean keepScreenOn) {

        m_activity.runOnUiThread(new Runnable() {
            public void run() {
                try {
                    Log.d(TAG, String.format("setKeepScreenOn: %b", 
keepScreenOn));

                    if (keepScreenOn) {
                        
m_activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
                        return;
                    }

                    // Else let it go back to sleep and save power
                     
m_activity.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

                } catch (Throwable t) {
                    Log.d(TAG, String.format("setKeepScreenOn.exception %s", 
t.toString()));
                }
            }
        });

    }



-Ed



> On Sep 28, 2016, at 12:38 PM, Jason H <[email protected]> wrote:
> 
> Why not have two runnables? One that sets the flag and one that does not?
>  
> m_activity.runOnUiThread( ikeepScreenOn ? new Runnable() { ... keep screen on 
> code... } : new Runnable { ...don't keep screen on... }
> It might boove you to put the common code in one function though.
>  
>  
> I personally use:
> PowerManager pm = (PowerManager) 
> context.getSystemService(Context.POWER_SERVICE);
> screenLock = 
> pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK|PowerManager.ON_AFTER_RELEASE
>  , "RecordingLock");
> Which I then call as needed. However Adnroid has many revisions and this 
> practice may be obsolete.
>  
> Sent: Wednesday, September 28, 2016 at 1:23 PM
> From: "Eddie Sutton" <[email protected]>
> To: "Qt Interest" <[email protected]>
> Subject: [Interest] [ Android ] How pass argument to 
> QtActivity::runOnUiThread ?
> How can you pass an argument to QtActivity runOnUiThread ?
>  
>  
> Example with no argument:
>  
>     public void hide()
>     {
>         m_activity.runOnUiThread( new Runnable() {
>             @Override
>             public void run() {
>                 if (m_dialog != null && m_dialog.isShowing())
>                     m_dialog.dismiss();
>                 reset();
>             }
>         });
>     }
>  
>  
>  
> My goal is to temporarily disable power saving during a log-running Bluetooth 
> transfer by clearing the Window flag FLAG_KEEP_SCREEN_ON
>  
>     public void setKeepScreenOn(boolean keepScreenOn)
>  
>     {
>         m_activity.runOnUiThread( new Runnable() {
>             @Override
>             public void run() {
>  
> if (keepScreenOn) {
>                 
> m_instance.getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
>                 return;
>             }
>  
>             // Else let it go back to sleep and save power
>             
> m_instance.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
>  
>             }
>         });
>     }
>  
>  
>  
> -Ed
> _______________________________________________ Interest mailing list 
> [email protected] http://lists.qt-project.org/mailman/listinfo/interest 
> <http://lists.qt-project.org/mailman/listinfo/interest>
_______________________________________________
Interest mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/interest

Reply via email to