标签: android-appwidget

为什么我的android报警管理器会立即触发?

我正在按照示例代码每10秒发送一次更新通知.代码如下,它是UpdateService一个AppWidgetProvider.如果我放了一个,Thread.sleep(10*1000);我可以看到我的服务循环的预期行为.我显然有一些根本错误的东西会立即触发.它应该是一个PendingIntent警报,将广播更新给我的听众.

long nextUpdate = 10*1000;
Log.d(TAG, "Requesting next update in " + nextUpdate + " msec." );

Intent updateIntent = new Intent(ACTION_UPDATE_ALL);
updateIntent.setClass(this, UpdateService.class);

PendingIntent pendingIntent = PendingIntent.getService(this, 0, updateIntent, 0);

// Schedule alarm, and force the device awake for this update
AlarmManager alarmManager = (AlarmManager)getBaseContext().getSystemService(Context.ALARM_SERVICE);
alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME, SystemClock.elapsedRealtime(), 
    nextUpdate, pendingIntent);
Run Code Online (Sandbox Code Playgroud)

android alarmmanager android-pendingintent android-appwidget

13
推荐指数
3
解决办法
7587
查看次数

小部件错误的网格大小

我写了一个应该是4x2主屏幕块的小部件.这是minheight和minwidth,根据当前的"App Widget Design Guidelines"页面

android:minWidth="250dp"
android:minHeight="110dp"
Run Code Online (Sandbox Code Playgroud)

如果系统版本低于Ice Cream Sandwich,则应从dimens.xml应用填充

在我的Nexus 4(xhdpi,Jellybean 4.2.1)上,这个小部件是4x2.在模拟器(hdpi,Gingerbread 2.3.3)上,这个小部件是4x2.然而,在我的Nexus 7(hdpi,Jellybean 4.2.1)上,小部件是3x2.我不能为我的生活弄清楚为什么或如何解决它.有什么想法吗?

android widget sizing android-appwidget

13
推荐指数
1
解决办法
2917
查看次数

如何在android主屏幕列表视图小部件中加载项目?

我目前正在开发一个Android项目,它利用Homescreen Widget向用户显示数据.我在Widget中使用的视图是一个ListView.以下是我的代码:

WidgetService类

public class WidgetService extends RemoteViewsService
{

    @Override
    public RemoteViewsFactory onGetViewFactory(Intent intent)
    {   
        return (new WidgetRemoteViewsFactory(this.getApplicationContext(), intent));
    }

}
Run Code Online (Sandbox Code Playgroud)

WidgetProvider类

public class WidgetProvider extends AppWidgetProvider
{   
    @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 onReceive(Context context, Intent intent)
    {
        super.onReceive(context, intent);
    }

    @Override
    public void onUpdate(Context context, AppWidgetManager appWidgetManager,
            int[] appWidgetIds) 
    {
        for(int i=0;i<appWidgetIds.length;i++) …
Run Code Online (Sandbox Code Playgroud)

android listview listviewitem homescreen android-appwidget

13
推荐指数
1
解决办法
1万
查看次数

使用自定义字体创建数字时钟小部件

我正在尝试使用自定义字体创建数字时钟小部件.事实证明这是我体验Android的最大挑战.(认为​​它会像它一样简单tc.setTypeFace("whatever")并且完成它)

最好的方法似乎是刮擦TextClock并使用a ImageView并使用自定义AlarmManager将Bitmap传递给它,以便每秒为视图创建一个新图像.

在进入Bitmap生成之前,我练习了一个简单的TextView使用本教程的Alarm Manager Widget

我的问题是我无法每秒更新一次.我使用 am.setRepeating(AlarmManager.RTC_WAKEUP , System.currentTimeMillis()+1000, 1000, pi);但它仍然只是每分钟左右更新它(虽然不是每分钟的顶部).我认为这与最新操作系统(Kitkat,Lollipop)的处理方式有关AlarmManagers.

我的问题是:

  1. 这是正确的方法吗?如果没有,请解释我应该做什么.

  2. 如何让窗口小部件每秒更新一次?

android widget alarmmanager android-appwidget android-5.1.1-lollipop

13
推荐指数
1
解决办法
5085
查看次数

FileProvider错误

https://developer.android.com/training/camera/photobasics.html

我所要做的就是用相机拍照,保存并在ImageView中显示.

我按照上面的android教程继续在行上得到一个错误(一个NullPointerException):

Uri photoURI = FileProvider.getUriForFile(this, "com.example.android.fileprovider", photoFile);
Run Code Online (Sandbox Code Playgroud)

我知道我需要在应用程序的清单中配置FileProvider,并且"权限"必须匹配.我不太明白我应该在当局的论点中提出什么.我复制了教程中的所有代码,包括文件res/xml/file_paths.xml.如有必要,请提出任何问题

谢谢!

android android-appwidget android-studio android-fileprovider

13
推荐指数
1
解决办法
2万
查看次数

ACTION_BATTERY_CHANGED像疯了一样开火

好的,所以我正在开发一个AppWidget来检查电池电量并将其显示在TextView上.我的代码看起来像这样:

public class BattWidget extends AppWidgetProvider {

private RemoteViews views = new RemoteViews("com.nickavv.cleanwidgets", R.layout.battlayout);

@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int appWidgetIds[]) {
    final int N = appWidgetIds.length;
    context.getApplicationContext().registerReceiver(this,new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
    for (int i = 0; i < N; i++) {
        int appWidgetId = appWidgetIds[i];
        appWidgetManager.updateAppWidget(appWidgetId, views);
    }
}

@Override
public void onReceive(Context context, Intent intent) {
    super.onReceive(context, intent);
    Log.d("onReceive", "Received intent " + intent);
    if (intent.getAction().equals(Intent.ACTION_BATTERY_CHANGED)) {
        Integer level = intent.getIntExtra("level", -1);
        views.setTextViewText(R.id.batteryText, level+"%");
        AppWidgetManager myAWM = AppWidgetManager.getInstance(context);
        ComponentName …
Run Code Online (Sandbox Code Playgroud)

android battery broadcastreceiver android-appwidget

12
推荐指数
1
解决办法
5747
查看次数

如何从Android AppWidget启动Activity?

像这样的代码效果很好.

    Intent configIntent = new Intent (context, WidgetConfigActivity.class);
    configIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
    PendingIntent pIntent = PendingIntent.getActivity(context, 0, configIntent, PendingIntent.FLAG_UPDATE_CURRENT);
    remoteView.setOnClickPendingIntent(R.id.btn, pIntent);
Run Code Online (Sandbox Code Playgroud)

但是我想隐藏那个按钮,因为活动会出现,所以我试图将意图发送到小部件本身,在onReceive()方法中执行隐藏组件然后开始活动.问题是我无法startActivity()在AppWidget中使用函数.

有什么解决方案吗?

android android-activity android-appwidget

12
推荐指数
3
解决办法
8002
查看次数

当onReceive方法存在时,不会调用App Widget onUpdate

AppWidgetProvider班上有以下代码.

@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
    Log.i("Custom", "Update");
}

@Override
public void onReceive(Context context, Intent intent) {
    Log.i("Custom", "Recieve");
}
Run Code Online (Sandbox Code Playgroud)

如果我注释掉该onReceive方法,onUpdate每次我将小部件添加到主屏幕时都会调用该方法,如果我不这样做则不会运行.有什么想法吗?

android android-appwidget

11
推荐指数
1
解决办法
4458
查看次数

是否可以在Eclipse中预览AppWidget的布局?

我正在开发相当多的主屏幕小部件,目前我必须在我的模拟器或手机上安装它们才能预览布局.

是否可以在Eclipse中预览布局?当我在预览模式下打开我的布局的XML时,它会将其显示为活动,因此缩放完全错误.

android eclipse-adt android-appwidget

11
推荐指数
1
解决办法
1012
查看次数

锁定屏幕上的媒体控制,如Android中的Google Play音乐?

我已经通过了锁屏小部件文档,我实现了它,但这不是自动放在主锁窗口上的内容.我正在寻找提供Media Lock-screen窗口(在Jelly Bean及以上版本中)的媒体控制解决方案,如Google Play音乐应用程序.

看看谷歌播放音乐锁,这显然不是锁定屏幕小部件.

在此输入图像描述

android android-appwidget lockscreenwidget

11
推荐指数
1
解决办法
1万
查看次数