每次屏幕打开(未解锁)时运行代码-即使应用被终止

时间:2019-04-08 12:33:15

标签: android android-intent broadcastreceiver

我之前问过这个问题,但被报道为DUPLICATE。但是,建议的帖子没有回答我的问题。因此,我正在再次尝试并使自己更加清晰。

我正在尝试开发一个可在设备锁定时每次单击电源/主页按钮来更改壁纸的应用程序(有点像三星锁屏壁纸库)。因此,每次屏幕从黑到亮时,墙纸都会改变。

我了解到,使用action_screen_on可以一定程度实现这一目标。但是,据说这种意图只能在应用程序正在运行时使用。我希望壁纸即使在应用程序被终止后也能改变。

这是我的代码的片段:

public class screenOnReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) {
            WallpaperManager myWallpaperManager = WallpaperManager.getInstance(context);

            int height = 500;
            int width = 500;
            Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
            Canvas canvas = new Canvas(bitmap);
            Paint paintGradient = new Paint(Paint.ANTI_ALIAS_FLAG);
            Shader shader = new LinearGradient(0, 0, width, height,
                    new int[]{0xffffff, 0x454545}, null, Shader.TileMode.CLAMP);

            paintGradient.setShader(shader);
            canvas.drawRect(0, 0, width, height, paintGradient);
            try {
                myWallpaperManager.setBitmap(bitmap);
            } catch (IOException e) {
                Log.v("Error", "Problem setting wallpaper");
            }
        }
    }
}

我什么也没看到。好像这个BroadcastReceiver根本没有被触发。 谢谢大家。

0 个答案:

没有答案