相关疑难解决方法(0)

在Android关闭屏幕时,以编程方式关闭屏幕

我的应用程序是拨号器,当用户将手机靠近他的头时,我需要关闭屏幕并防止点击控件 - 就像本机Android拨号器行为一样.我需要什么API级别以及如何以正确的方式执行此操作?

android screen android-sensors sensormanager

21
推荐指数
1
解决办法
2万
查看次数

在android中以编程方式将屏幕设置为关闭

如果在1分钟不活动后没有自动完成,我可以在android中以编程方式将屏幕设置为关闭.

这有可能在android中以编程方式执行吗?

我找到了这个主题: Android:如何以编程方式打开和关闭屏幕?

以编程方式打开和关闭屏幕不能在某些设备上运行

但1分钟后没有计时器.

android

12
推荐指数
1
解决办法
1万
查看次数

FLAG_TURN_SCREEN_ON并不总是有效

我从BroadcastReceiver启动一个活动,它由alaram(RTC_WAKEUP类型)触发.在onCreate的那个活动我添加这些标志

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        
);
Run Code Online (Sandbox Code Playgroud)

问题是有时(大约10%的情况)屏幕无法打开.警报被正确触发(我这里是通知的声音,这也是在接收器的onReceive()中触发的.然后,如果我按下电话的电源按钮,屏幕会亮起,显示我的活动,并立即关闭.那个,电源按钮工作正常.这发生在android 2.3.7上,这里是onReceive()方法

@Override
public void onReceive(Context context, Intent intent) {
    m_Context = context;

    Bundle extras = intent.getExtras();
    final int id = extras.getInt("timer_id");

    Intent activityIntent = new Intent(m_Context, MyActivity.class);
    activityIntent.putExtra("timer_id", id);
    activityIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);
    m_Context.startActivity(activityIntent);

    // and now load the alarm sound and play it for the desired time
    showFinishedNotification();
}
Run Code Online (Sandbox Code Playgroud)

我想避免使用PowerManager,因为它需要一个权限,并且标志是首选的方式.

什么可能是一个问题?logcat没有显示任何问题......

android screen wakeup

10
推荐指数
3
解决办法
7988
查看次数

以编程方式在android中打开屏幕

我正在开发一个警报应用程序.从主要活动我使用广播设置闹钟.然后在广播接收器中的onReceive中,我调用允许用户关闭或暂停警报的活动...在该活动中,在onCreate的开头我使用这一行来打开屏幕并解锁设备:

final Window win = getWindow();
    win.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
                  | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD); 
    win.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
                  | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
Run Code Online (Sandbox Code Playgroud)

这适用于三星Galaxy S2与Android 2.3.4但不适用于htc与Android 2.3.5.在HTC它没有做任何事情,当我按下锁定按钮屏幕自动解锁而没有我拖动圆圈.就像flag_dissmiss_keygard一样,但是flag_turn_screen_on不是.这样做还有另一种方法或其他方法吗?

android android-alarms android-windowmanager

10
推荐指数
1
解决办法
2万
查看次数

如何在部分唤醒锁定期间打开屏幕

我的活动运行部分唤醒锁定,因为它会持续处理收到的蓝牙数据.唤醒锁的设置如下:

  powerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
  wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyWakeLock");
  wakeLock.acquire();
Run Code Online (Sandbox Code Playgroud)

当某些事件发生时,我想在显示屏上显示,以便用户可以查看状态.我希望显示器自动打开,而不是通过用户按键打开.然而,所有这样做的尝试都失败了.当使用部分唤醒锁定运行时显示屏关闭时,我尝试将显示屏返回并让用户看到当前活动失败.我试过伪造用户活动:

PowerManager NewPowerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
   NewPowerManager.userActivity(1, false);
Run Code Online (Sandbox Code Playgroud)

设置窗口的标志:

 Window win = getWindow();
  win.setFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON, WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
Run Code Online (Sandbox Code Playgroud)

甚至释放唤醒锁并启动另一个应该打开屏幕:

if (wakeLock != null)
   {
      wakeLock.release(); // release the wakelock
   }
PowerManager.WakeLock TempWakeLock = powerManager.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK |
   PowerManager.ACQUIRE_CAUSES_WAKEUP, "TempWakeLock");
   // tried | PowerManager.ON_AFTER_RELEASE to no avail
   TempWakeLock.acquire();
Run Code Online (Sandbox Code Playgroud)

这里有什么我想念的吗?我不打算开放一个新活动,而只是向用户显示我当前的活动.有没有其他人能够做到这一点?感谢你给与我的帮助.

android screen power-management

7
推荐指数
1
解决办法
5524
查看次数

如何让手机以编程方式进入睡眠状态

我需要做一个关闭移动屏幕并以编程方式进入睡眠状态的应用程序.例如,如果屏幕在没有user_present的情况下打开超过5分钟,我应该将其关闭.我尝试使用PowerManager(goToSleep()函数应该完全按照我想要的方式执行,但似乎无效):

PowerManager pm = (PowerManager) m_context.getSystemService(Context.POWER_SERVICE);


  if (pm.isScreenOn() )
   {
    pm.goToSleep(System.currentTimeMillis() + 1000
   }
Run Code Online (Sandbox Code Playgroud)

我的清单中有以下权限:

<uses-permission android:name="android.permission.DEVICE_POWER"/>
Run Code Online (Sandbox Code Playgroud)

它抛出一个异常:java.lang.SecurityException:用户10068和当前进程都没有android.permission.DEVICE_POWER.但我的清单中有这个许可.

有没有其他方法可以做到这一点,而无需支持我的手机?

java android standby powermanager

5
推荐指数
1
解决办法
4735
查看次数

Android:打开屏幕并通知用户

我有一些意图.当意图触发时,我想发送一个类似AlertBox的弹出通知并打开屏幕让用户立即看到通知(我的意思是没有显示锁屏).

如果您已经使用过HandcentSMS,那么您就明白我的意思了(比如接受消息时的弹出通知)

怎么组织这个?任何代码示例?我必须使用哪种权限?

先感谢您.

notifications android

3
推荐指数
2
解决办法
7034
查看次数

如何设置屏幕亮度?

我想通过点击按钮来调整屏幕亮度,所以当背景为白色时,屏幕亮度应该是最大的,同时如果背景为黑色,屏幕亮度应该是最小的,但是我得到一个错误:NullPointerException ...这里是我的代码:

public void lamp2(boolean mode){

        if(mode){

            r.setBackgroundColor(Color.WHITE);
            btn.setText("Turn OFF");
            btn.setTextColor(Color.RED);
            WindowManager.LayoutParams lp = getWindow().getAttributes();
            lp.screenBrightness = 90 / 100.0f;
            getWindow().setAttributes(lp);
            this.mode = true;
        }

        else if(!mode){

            r.setBackgroundColor(Color.BLACK);
            btn.setText("Turn ON");
            btn.setTextColor(Color.GREEN);
            WindowManager.LayoutParams lp = getWindow().getAttributes();
            lp.screenBrightness = 100 / 100.0f;
            getWindow().setAttributes(lp);
            this.mode = false;
        }
    }
Run Code Online (Sandbox Code Playgroud)

android screen brightness

1
推荐指数
1
解决办法
1753
查看次数