安卓-可点击小部件-在模拟器上工作,但在手机上不工作。

3

我尝试在安卓上创建可点击的小部件。我在这个网站上寻找解决方案,也找到了,但最终发现此小部件只能在模拟器上运行 - 在真实手机上无法工作。以下是我的代码:

AppWidgetProvider:

public static String WIDGET_BUTTON = "apps.test.widget.WIDGET_BUTTON";

@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
        int[] appWidgetIds) {
    super.onUpdate(context, appWidgetManager, appWidgetIds);

    RemoteViews views = new RemoteViews(context.getPackageName(),
            R.layout.main);

    Intent clickIntent = new Intent(WIDGET_BUTTON);
    PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0,
            clickIntent, PendingIntent.FLAG_UPDATE_CURRENT);
    views.setOnClickPendingIntent(R.id.imageView1, pendingIntent);

    appWidgetManager.updateAppWidget(appWidgetIds, views);
}

@Override
public void onReceive(Context context, Intent intent) {
    super.onReceive(context, intent);
    if (WIDGET_BUTTON.equals(intent.getAction())) {
        Toast.makeText(context, "asdfsdgdasfg", Toast.LENGTH_SHORT).show();

    }
}

清单文件:

<application
    android:allowBackup="true"
    android:icon="@drawable/image"
    android:label="@string/app_name" >
    <receiver
        android:name=".Widget"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
            <action android:name="apps.test.widget.WIDGET_BUTTON"/>
        </intent-filter>

        <meta-data
            android:name="android.appwidget.provider"
            android:resource="@xml/test_widget_provider" />
    </receiver>
</application>

Toast 在模拟器上出现了,但在手机上却没有出现。

2个回答

0

这是一个常见的问题,我在我的手机上遇到过几次。如果应用程序安装在SD卡而不是内部存储器上,则小部件不会出现在列表中。您可以简单地转到“设置”->“应用程序”->找到该应用程序,然后从您的Android设备中选择将其移动到内部存储器的选项。

[http://www.technipages.com/fix-android-app-widgets-not-appearing-on-widget-list][1] 还有另一种方法可以在清单中声明为android:externalstorage(语法不正确),它也可以起作用(我找不到答案的链接,也没有尝试过)


0

好的,没事了。 我不得不将手机恢复到出厂设置。我不知道出了什么问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接