我有一个BroadcastReceiver开始Activity.如果在Activity屏幕打开时启动,则显示并且一切正常.但是,在ICS和JB设备上(我没有测试GB或HC,但Froyo不存在问题)如果Activity在屏幕关闭时启动,则锁定屏幕不会被禁用,并且当活动未显示时手机解锁(通过手动解锁或使用我为后Froyo设备输入的代码).
为什么,至少在ICS和JB设备上,如果没有下面提到的代码,锁屏就不会被禁用,为什么活动显示屏幕Activity在启动时屏幕是否关闭?
这是代码:
在BroadcastReceiver:
Intent alarmAlert = new Intent(context, AlarmGoneOffActivity.class);
alarmAlert.putExtra(MyAlarmManager.ALARM_NUM_ID, alarm.ID);
alarmAlert.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK |
Intent.FLAG_ACTIVITY_NO_USER_ACTION);
context.startActivity(alarmAlert);
Run Code Online (Sandbox Code Playgroud)
在AlarmGoneOffActivity.onCreate():
setContentView(R.layout.alarm_gone_off);
final Window win = getWindow();
win.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN |
WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD |
WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED |
WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON,
WindowManager.LayoutParams.FLAG_FULLSCREEN |
WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD |
WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED |
WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
}
//so far all of my post froyo devices (ICS and JB no more GB)
// don't bypass the lockscreen unless we use this
if(Build.VERSION.SDK_INT > Build.VERSION_CODES.FROYO) {
KeyguardManager …Run Code Online (Sandbox Code Playgroud) android android-screen android-windowmanager android-activity
我有一个平板电脑应用程序,其中包含显示我公司数据的片段.当我在页面上时,我想用屏幕方向动态地改变我的布局,但我还没找到.
如果有人得到了解决方案,请提前感谢
我需要使用空闲侦听器来监听用户正在使用应用程序或在活动处于活动状态时闲置.当用户不使用应用程序超过十秒钟时,我需要做一些事情.我怎么能让它成为可能?
我在android中有以下类,我在其中定义了一些函数来计算屏幕上Bubbles的运动.
public class floatBubble {
private Bitmap img; // the image of the ball
private int coordX = 512; // the x coordinate at the canvas
private int coordY = 600; // the y coordinate at the canvas
private int id; // gives every ball his own id, for now not necessary
private static int count = 1;
private boolean goRight = true;
private boolean goDown = true;
public floatBubble(Context context, int drawable) {
BitmapFactory.Options opts = new BitmapFactory.Options();
opts.inJustDecodeBounds …Run Code Online (Sandbox Code Playgroud) 我发现Canvas坐标系的单位与屏幕的坐标系不同.
例如在我的情况下如下:
对于一个特定的点,坐标从获得的它的屏幕上的ImageView.getX()和ImageView.getY()是(336, 578).
然后通过反复试验,我在画布上画一个点,使这个点完全落在与ImageView相同的位置.我打电话canvas.drawCircle(330, 440, radius, paint);来实现这一目标.
问题出在这里:
为什么2坐标(336,578)和(330,440)不同?
是因为屏幕和画布使用不同的单位?
这是关于像素,dp和所有这些的问题吗?
以下文件夹结构适用于上述设备和解决方案:
问题在于Nexus 10和三星Galaxy Tab 10(Tab是Android 4.0和mdpi).为了处理这两个设备我添加了两个单独的可绘制文件夹
但是,Nexus 10和三星Galaxy Tab 10都使用了drawable-sw800dp-xhdpi中的图像.
类似的结果,Nexus 10和三星Galaxy Tab 10都使用了drawable-sw720dp-xhdpi的图像.
我也尝试使用drawable-xlarge-mdpi和drawable-xlarge-xhdpi(删除drawable-sw800dp-mdpi和drawable-sw800dp-xhdpi)来处理三星Galaxy Tab 10但Tab是Android 4.0并且xlarge不推荐使用结构.所以它是根据新的目录结构(即drawable-sw600dp-xhdpi).
在Eclipse图形布局编辑器中,选择10.1"WXGA(平板电脑),就像三星Galaxy Tab 10一样,显示正确的图像(来自drawable-sw800dp-mdpi).但是,当我在设备或模拟器中测试相同的东西时,它显示来自提拉 - sw800dp-xhdpi.
Manifrest:
<uses-sdk
android:minSdkVersion="8" …Run Code Online (Sandbox Code Playgroud) android android-layout android-screen android-screen-support android-drawable
我希望手机屏幕闪烁或唤醒一次,持续几毫秒.我在stackoverflow上读了几个问题.提供大多数解决方案是为了支持活动.因为它需要window明显属于活动而不是服务的对象.
我的服务是前台服务,系统可以为内存收集活动.但是我的服务被系统收集的可能性非常小,因为它是前台服务.
window通过使用以下标志从使用对象的活动,我们可以唤醒屏幕:
WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD
WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
WindowManager.LayoutParams.FLAG_ALLOW_LOCK_WHILE_SCREEN_ON
Run Code Online (Sandbox Code Playgroud)
有没有其他方法我可以从服务中唤醒屏幕?
我找到了几种方法来调暗屏幕,但我不确定它们是如何与FLAG_KEEP_SCREEN_ON协同工作的:
即使我将亮度设置为0.0,上述哪种方法都会保持屏幕亮起?
我将在Android中开发新的应用程序.此应用程序应仅以纵向(即使是平板电脑)工作.在手机和平板电脑上,UI和布局设计应该类似.我们无法改变平板电脑的布局设计,因为它有很大的使用面积.我们必须拉伸所有图像以匹配手机.我们可以使用九个补丁.但我对在多个drawable中使用图像有点困惑.
根据我的分析(可能是错误的...... :))屏幕分为密度和大小.我们可以使用3:4:6:8的缩放比例.但这个比例是基于密度的.但在我的情况下,我必须拉伸整个用户界面来填充平板电脑屏幕.
那么什么是可以用于这样的应用程序的drawables,它可以支持多个设备.我们必须设计哪些屏幕尺寸.
这个应用程序需要近100个布局.所以我打算保持单一布局,并使用每个布局的重量来设计布局,而不是使用尺寸.
此外,如果我使用多个APK来支持不同的屏幕大小,那么用于支持的绘图是什么.小和正常2.大3. Xlarge
我发现两年前的帖子说有人无法做到。我还发现可以使用ACTION_USER_PRESENT来检测用户何时解锁屏幕,但是可以检测到用户何时打开屏幕(通过任何操作)?
编辑:我想知道用户何时按下任何按钮或执行其他可以打开屏幕的操作