gpt4 book ai didi

android 在锁定屏幕上显示小部件

转载 作者:行者123 更新时间:2023-11-30 03:32:22 25 4
gpt4 key购买 nike

我无法在 Android 设备的锁定屏幕上显示小部件,我的代码:

    package com.example.widgetapp;

import android.annotation.SuppressLint;
import android.app.PendingIntent;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.ActivityNotFoundException;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.view.WindowManager;
import android.widget.RemoteViews;
import android.widget.Toast;

public class MainActivity extends AppWidgetProvider {

// private static final String ACTION_CLICK = "ACTION_CLICK";

@SuppressLint("NewApi")
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds)
{


ComponentName thisWidget = new ComponentName(context,
MainActivity.class);
int[] allWidgetIds = appWidgetManager.getAppWidgetIds(thisWidget);
for (int widgetId : allWidgetIds) {

try {
// getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
// getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
Intent intent = new Intent("android.intent.action.MAIN");
intent.addCategory("android.intent.category.LAUNCHER");

intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setComponent(ComponentName.unflattenFromString("com.example.rage/com.example.rage.RageActivity"));

Intent callIntent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:"+198));
callIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

//remoteViews.setOnClickFillInIntent(widgetId, callIntent);

PendingIntent pendingIntent = PendingIntent.getActivity(
context, 0, intent, 0);
PendingIntent pendingIntent1 = PendingIntent.getActivity(
context, 0, callIntent, 0);
RemoteViews views = new RemoteViews(context.getPackageName(),
R.layout.activity_main);
// views.setOnClickFillInIntent(widgetId, intent);
// views.setOnClickFillInIntent(widgetId, callIntent);

// context.startActivity(intent);
// context.startActivity(callIntent);

views.setOnClickPendingIntent(R.id.button1, pendingIntent1);
views.setOnClickPendingIntent(R.id.button2, pendingIntent);

appWidgetManager.updateAppWidget(widgetId, views);

} catch (ActivityNotFoundException e) {
Toast.makeText(context.getApplicationContext(),
"There was a problem loading the application: ",
Toast.LENGTH_SHORT).show();

}
}

}

最佳答案

尝试添加:“android:widgetCategory="home_screen|keyguard"到提供者 xml

<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:initialLayout="@layout/my_widget_layout"
android:minHeight="40dp"
android:minWidth="40dp"
android:resizeMode="horizontal|vertical"
android:widgetCategory="home_screen|keyguard" >
</appwidget-provider>

关于android 在锁定屏幕上显示小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17233920/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com