标签: android-windowmanager

从服务android获取窗口显示

我试图从服务中显示一个窗口,但没有得到它如何做到这一点

这是我的代码 -

onStart服务方法

LayoutInflater inflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
    View view = inflater.inflate(R.layout.main1, null);
    WindowManager manager = (WindowManager) getSystemService(WINDOW_SERVICE);

    WindowManager.LayoutParams params = new WindowManager.LayoutParams();
    params.type = 2002;
    params.format = 1;
    params.flags = 40;
    params.height = WindowManager.LayoutParams.FILL_PARENT;
    params.width = WindowManager.LayoutParams.FILL_PARENT;
    manager.addView(view, params);

     /** just a timer *****/
    textView = (TextView) view.findViewById(R.id.textView1);
    final Timer t = new Timer("hello", true);
    t.schedule(new TimerTask() {

    @Override
    public void run() {
        textView.post(new Runnable() {

        public void run() {
            seconds++;
            if (seconds == 60) { …
Run Code Online (Sandbox Code Playgroud)

android android-service android-view android-windowmanager

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

当屏幕被唤醒并且锁定屏幕未禁用时,Android活动不显示

我有一个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

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

在Android 2.3中通过锁屏显示触摸事件的对话框

我想构建一个在锁屏上可见的对话框,可以接收触摸事件.我构建了一个窗口,WindowManager但只有TYPE_SYSTEM_OVERLAY标志显示在GB(Android 2.3.7)的锁屏上.

有没有办法创建一个在锁屏上可见的系统覆盖,并可以在Android 2.3.7中接收触摸事件?

有一个错误,FLAG_WATCH_OUTSIDE_TOUCH但我不确定这对我有什么影响.有任何想法吗?

android overlay android-windowmanager

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

在使用FLAG_SHOW_WHEN_LOCKED启动Activity之前,会短暂显示Keyguard

我正在使用以下标志onAttachedToWindow()来显示我Activity的键盘上方:

FLAG_DISMISS_KEYGUARD | FLAG_SHOW_WHEN_LOCKED | FLAG_TURN_SCREEN_ON

这很好,但是,当屏幕关闭时从后台服务启动我的活动时,键控器有时会在我的应用程序显示之前显示1-2秒.这种情况尤其发生在较慢的手机上(或在低内存情况下).我发现这很奇怪,因为我的理解是/之后onAttachedToWindow()调用的,所以当上面提到的标志被设置时,所有"繁重的工作"应该已经完成​​了吗?有没有办法只显示我的一次完全设置? onCreate()onResume()Activity

android android-windowmanager

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

系统覆盖窗口会导致键盘和后退按钮出现触摸问题

我正在尝试创建类似于Paranoid Android上的Halo Notification的应用程序.到现在为止还挺好.

但是,当我的"光环"出现在屏幕上时,我可以将它移动得很好,大多数触摸事件都能正常工作.但是,当我尝试通过点击EditText弹出键盘时,没有任何反应.窗口似乎消耗了焦点.后退按钮也不起作用,但主页和最近的应用程序按钮工作.

我正在运行PA的AOSP 4.4的根管理Nexus 4上测试应用程序

我用来创建光环窗口的代码(布局参数)是:

 WindowManager.LayoutParams params = new WindowManager.LayoutParams(
        WindowManager.LayoutParams.WRAP_CONTENT,
        WindowManager.LayoutParams.WRAP_CONTENT,
        WindowManager.LayoutParams.TYPE_SYSTEM_ERROR,
        WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL,
        PixelFormat.TRANSLUCENT);
Run Code Online (Sandbox Code Playgroud)

有什么想法导致这种选择性的触摸事件消耗?

android window system android-windowmanager

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

在Android Studio中同时运行多个设备的Logcat?

正如标题所说,我想在Android工作室内有两个窗口来查看同时运行的2个设备的日志,如何实现这一目标?目前我必须一直切换设备,但是当你必须比较不同的值时它不是很方便.

我找到了这个帖子,但它在AS中不起作用:

如何在Eclipse中同时运行多个设备的Logcat

android adb android-windowmanager android-studio

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

使 FLAG_SECURE 窗口在 Android 屏幕截图中不可见

我有一个带有标志 FLAG_SECURE 的浮动窗口。它已成功隐藏在我设置的屏幕截图和 MediaProjection 中。当我通过 MediaProjection 录制时,它显示为黑色矩形对象。我的浮动窗口中的所有内容都被涂黑了。

    WindowManager windowManager = (WindowManager) getApplicationContext().getSystemService(Context.WINDOW_SERVICE);
    WindowManager.LayoutParams params = new WindowManager.LayoutParams();

    params.type = WindowManager.LayoutParams.TYPE_PHONE;
    params.format = PixelFormat.TRANSPARENT;
    params.flags = WindowManager.LayoutParams.FLAG_SECURE;

    windowManager.addView(floatingView, params);
Run Code Online (Sandbox Code Playgroud)

我的问题是,是否可以隐藏这个浮动窗口?我的意思是不将其显示为黑色对象,而是在浮动窗口下捕获内容,以便它完全隐藏在 MediaProjection 之外?

android android-windowmanager android-mediaprojection

7
推荐指数
0
解决办法
947
查看次数

isAttachedToWindow()替代API级别<19

我想videoView.isAttachedToWindow()在我的片段中使用调用来验证videoview是否已初始化正常并且可以调用.

但是这个调用需要api级别19(当前min是14).videoView.isAttachedToWindow()API级别14及以上的最佳替代方案是什么?

编辑:我的视频视频播放通过Android盒子的HDMI输入流式传输的视频.在某些具有OS 4.0.4的硬件中,视频有时会出现抖动.

java android android-layout android-view android-windowmanager

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

无法添加窗口 - 窗口类型2003的权限被拒绝

尝试向WindowManager添加内容时遇到了问题.什么是最有趣的,如果你通过另一个编译器(AIDE)编译,那么一切正常.我现在正在使用Android工作室.以下是代码:

params = new WindowManager.LayoutParams(
                WindowManager.LayoutParams.WRAP_CONTENT,
                WindowManager.LayoutParams.WRAP_CONTENT,
                WindowManager.LayoutParams.TYPE_PHONE,
                WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, PixelFormat.TRANSLUCENT);

        params.gravity = Gravity.TOP|Gravity.LEFT;
        params.x = 0;
        params.y = y - barHeight;

        windowManager.addView(nb, params); // error there
Run Code Online (Sandbox Code Playgroud)

AndroidManifest:

<uses-permission android:name="android.permission.BIND_ACCESSIBILITY_SERVICE" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
Run Code Online (Sandbox Code Playgroud)

错误信息:

java.lang.RuntimeException: Unable to create service priv.congard.ozonehd4k.controlpanel.NavigationBarService: android.view.WindowManager$BadTokenException: Unable to add window android.view.ViewRootImpl$W@a8744a7 -- permission denied for window type 2003
                                                                                         at android.app.ActivityThread.handleCreateService(ActivityThread.java:3226)
                                                                                         at android.app.ActivityThread.-wrap5(ActivityThread.java)
                                                                                         at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1586)
                                                                                         at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                                         at android.os.Looper.loop(Looper.java:154)
                                                                                         at android.app.ActivityThread.main(ActivityThread.java:6186)
                                                                                         at java.lang.reflect.Method.invoke(Native Method)
                                                                                         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
                                                                                         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)
                                                                                      Caused by: android.view.WindowManager$BadTokenException: …
Run Code Online (Sandbox Code Playgroud)

android android-windowmanager

7
推荐指数
0
解决办法
2663
查看次数

撰写 UI(重构),窗口管理器不起作用

我正在 Android 上开发浮动窗口,但遇到了问题。因此,我的活动调用我的浮动类,该类创建视图并将其添加到窗口管理器,并带有显示并倒计时的计时器。在正常活动中尝试相同的代码时,它可以找到:S?

这是我的视图模型,其中包含 mutableStateOf 值

class WicViewModel : ViewModel() {

private val TAG = "WicViewModel"

private val a = 10000L
private val b = 1000L

private var _input: Long by mutableStateOf(a)

var input: Long
    get() = _input
    set(value) {
        if (value == _input) return
        _input = value

    }


fun start() {
    val timer = object : CountDownTimer(a, b) {
        override fun onTick(millisUntilFinished: Long) {
            Log.d("MYLOG", "text updated programmatically")
            input = millisUntilFinished

        }

        override fun onFinish() {
            input = 0 …
Run Code Online (Sandbox Code Playgroud)

user-interface android android-windowmanager kotlin android-jetpack-compose

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