package com.example.lybly.myapplication;
import android.app.PendingIntent;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.widget.RemoteViews;
import android.widget.Toast;
/**
* Implementation of App Widget functionality.
*/
public class NewAppWidget extends AppWidgetProvider {
public static final String CLICK_ACTION = "com.example.lybly.myapplication.action.CLICK"; // 点击事件的广播ACTION
/**
* 每次窗口小部件被更新都调用一次该方法
*/
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
super.onUpdate(context, appWidgetManager, appWidgetIds);
RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.new_app_widget);
Intent intent = new Intent(CLICK_ACTION);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, R.id.doge_imageView, intent, PendingIntent.FLAG_UPDATE_CURRENT);
remoteViews.setOnClickPendingIntent(R.id.doge_imageView, pendingIntent);
for (int appWidgetId : appWidgetIds) {
appWidgetManager.updateAppWidget(appWidgetId, remoteViews);
}
}
/**
* 接收窗口小部件点击时发送的广播
*/
@Override
public void onReceive(Context context, Intent intent) {
super.onReceive(context, intent);
if (CLICK_ACTION.equals(intent.getAction())) {
Intent call_intent=new Intent(Intent.ACTION_DIAL, Uri.parse("tel:112" ));
call_intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(call_intent);
Toast.makeText(context, "hello dog!", Toast.LENGTH_SHORT).show();
}
}
/**
* 每删除一次窗口小部件就调用一次
*/
@Override
public void onDeleted(Context context, int[] appWidgetIds) {
super.onDeleted(context, appWidgetIds);
}
/**
* 当最后一个该窗口小部件删除时调用该方法
*/
@Override
public void onDisabled(Context context) {
super.onDisabled(context);
}
/**
* 当该窗口小部件第一次添加到桌面时调用该方法
*/
@Override
public void onEnabled(Context context) {
super.onEnabled(context);
}
/**
* 当小部件大小改变时
*/
@Override
public void onAppWidgetOptionsChanged(Context context, AppWidgetManager appWidgetManager, int appWidgetId, Bundle newOptions) {
super.onAppWidgetOptionsChanged(context, appWidgetManager, appWidgetId, newOptions);
}
/**
* 当小部件从备份恢复时调用该方法
*/
@Override
public void onRestored(Context context, int[] oldWidgetIds, int[] newWidgetIds) {
super.onRestored(context, oldWidgetIds, newWidgetIds);
}
}
一个最简单的点击桌面小部件图片打电话 8.0以下可以使用
最新推荐文章于 2021-11-29 23:07:49 发布