让我用一个例子来说明我正在寻找的东西。在我的手机上,我有一个音乐播放器小部件,当激活时,手机超时,播放器继续工作(iPod风格,我明白)。但当你重新打开手机时,解锁滑杆上方的播放器是可见的,并且处于活动状态。
这在java中很容易做到吗?允许用户访问解锁滑块上方的应用程序(在密码之前)。
现在我知道我们可以很容易地将代码放入避免睡眠模式。但我正在开发的应用程序只需要每10或20分钟查看/修改一次,而且保持手机开机是在浪费电池。
发布于 2012-06-06 14:44:40
这是一个有争议的问题:
的更多信息
但一些有用的效果是可以管理的。这其中涉及到一些技巧。
ACTION_SCREEN_ON和ACTION_SCREEN_OFF Intent操作,并在应用程序上使用WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED权限。您可以使用它们来更改显示在锁定屏幕后面或之后的内容-这与问题非常接近(当锁定屏幕就位时,他们需要查看一些信息)。我有一个应用程序,显示信息时,锁定屏幕显示给用户,使用上述技术。严格地说,它不是一个自定义的Android锁屏,然而,它创造了当手机被锁定时自定义信息显示的效果。
它会在实际的股票锁定屏幕后面显示信息。但你也可以更换通常在手机锁定时显示的屏幕。
下面的是一个(最小的)演示应用程序,它展示了如何在手机锁定时显示信息。我忘记了大部分代码是从哪里得到的,但它是一些演示想法的混乱。我提出它只是为了说明可以做些什么--我并不是说这是什么“好”的生产代码。
当你运行应用程序并锁定手机时,应用程序会继续播放视频。此屏幕取代锁定屏幕。
将这些代码转换为产品代码需要一些工作,但它可能会对读者有所帮助。
YouTubeActivity.java:
重要的部分是最后两行,这两行使此活动在电话锁定时可见。
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 ...
<?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:
绝对的库存清单文件-这里没有什么有趣的东西。
<?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种我能想到的方法来完成发帖者想要的东西,或者对他有用的变通方法:
发布于 2011-08-29 23:02:01
这里有no API for drawing on lock screen,你也不能用一个自定义的replace lock screen。因此,你不能为现有的android手机编写这样的应用程序。
为了做到这一点,您需要创建自定义固件或在根电话中使用非标准功能。
https://stackoverflow.com/questions/7231649
复制相似问题