首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何让用户访问解锁滑块上方的应用程序

如何让用户访问解锁滑块上方的应用程序
EN

Stack Overflow用户
提问于 2011-08-29 22:41:36
回答 2查看 406关注 0票数 1

让我用一个例子来说明我正在寻找的东西。在我的手机上,我有一个音乐播放器小部件,当激活时,手机超时,播放器继续工作(iPod风格,我明白)。但当你重新打开手机时,解锁滑杆上方的播放器是可见的,并且处于活动状态。

这在java中很容易做到吗?允许用户访问解锁滑块上方的应用程序(在密码之前)。

现在我知道我们可以很容易地将代码放入避免睡眠模式。但我正在开发的应用程序只需要每10或20分钟查看/修改一次,而且保持手机开机是在浪费电池。

EN

回答 2

Stack Overflow用户

发布于 2012-06-06 14:44:40

这是一个有争议的问题:

  • 有一些应用程序可以做到这一点。查看How to customize Android's LockScreen?,比如WidgetLocker --所以这并不完全是impossible.
  • However,,谷歌不推荐使用安卓的锁屏。谷歌已经移除了与其操作系统锁定屏幕交互的功能(特别是在2.2版本)。有关该here.

的更多信息

但一些有用的效果是可以管理的。这其中涉及到一些技巧。

  • 的一个诀窍是用一个自定义的锁屏取代安卓的锁屏--本质上是一个实现自己锁定的主屏幕应用程序。我认为这就是WidgetLocker的工作原理,但我不确定。Android SDK附带了一个主屏幕演示应用程序。
  • 另一个技巧是使用ACTION_SCREEN_ONACTION_SCREEN_OFF Intent操作,并在应用程序上使用WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED权限。您可以使用它们来更改显示在锁定屏幕后面或之后的内容-这与问题非常接近(当锁定屏幕就位时,他们需要查看一些信息)。

我有一个应用程序,显示信息时,锁定屏幕显示给用户,使用上述技术。严格地说,它不是一个自定义的Android锁屏,然而,它创造了当手机被锁定时自定义信息显示的效果。

它会在实际的股票锁定屏幕后面显示信息。但你也可以更换通常在手机锁定时显示的屏幕。

下面的是一个(最小的)演示应用程序,它展示了如何在手机锁定时显示信息。我忘记了大部分代码是从哪里得到的,但它是一些演示想法的混乱。我提出它只是为了说明可以做些什么--我并不是说这是什么“好”的生产代码。

当你运行应用程序并锁定手机时,应用程序会继续播放视频。此屏幕取代锁定屏幕。

将这些代码转换为产品代码需要一些工作,但它可能会对读者有所帮助。

YouTubeActivity.java:

重要的部分是最后两行,这两行使此活动在电话锁定时可见。

代码语言:javascript
复制
package com.youtube.demo;

import android.app.Activity;
import android.net.Uri;
import android.os.Bundle;
import android.view.WindowManager;
import android.widget.VideoView;

public class YouTubeActivity extends Activity
{

    String SrcPath = "rtsp://v5.cache1.c.youtube.com/CjYLENy73wIaLQnhycnrJQ8qmRMYESARFEIJbXYtZ29vZ2xlSARSBXdhdGNoYPj_hYjnq6uUTQw=/0/0/0/video.3gp";

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

        VideoView myVideoView = (VideoView) findViewById(R.id.myvideoview);
        myVideoView.setVideoURI(Uri.parse(SrcPath));
        myVideoView.requestFocus();
        myVideoView.start();

        getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
    }
}

main.xml:

这里没什么特别的--只是在屏幕上放了一个VideoView ...

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <VideoView android:id="@+id/myvideoview"
        android:layout_width="fill_parent" android:layout_height="wrap_content" />
</LinearLayout>

AndroidManifest.xml:

绝对的库存清单文件-这里没有什么有趣的东西。

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.youtube.demo" android:versionCode="1" android:versionName="1.0">
    <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="8" />

    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".YouTubeActivity" android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>
</manifest>

所以有3种我能想到的方法来完成发帖者想要的东西,或者对他有用的变通方法:

  • 做WidgetLocker做的事情--我不知道具体是怎么做的,开发人员也不会告诉你。
  • 更改股票锁活动的背景,而不是股票锁屏幕(提供了演示代码)。
票数 2
EN

Stack Overflow用户

发布于 2011-08-29 23:02:01

这里有no API for drawing on lock screen,你也不能用一个自定义的replace lock screen。因此,你不能为现有的android手机编写这样的应用程序。

为了做到这一点,您需要创建自定义固件或在根电话中使用非标准功能。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7231649

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档