我在菜单“desktop-> add-> widget->”中的小部件可用性方面遇到了一些问题。 我无法弄清楚为什么我的小部件在小屏幕(ldpi)上无法访问以及何时被移动到SD卡。 的清单
<application android:icon="@drawable/ic_launcher"
android:label="@string/app_name" android:process="@string/app_name"
android:persistent="true" android:debuggable="false"
android:description="@string/app_desc">
<receiver android:name="widget.Widget_4_1" android:label="Rozmiar 4x1">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data android:name="android.appwidget.provider"
android:resource="@xml/widget_provider_4_1" />
</receiver>
</application>
<uses-sdk android:minSdkVersion="4" />
<supports-screens android:smallScreens="true"
android:normalScreens="true" android:largeScreens="true"
android:anyDensity="true" />
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
</manifest>
窗口小部件提供程序
<?xml version="1.0" encoding="utf-8" ?>
<appwidget-provider
xmlns:android="http://schemas.android.com/apk/res/android"
android:minWidth="294dip"
android:initialLayout="@layout/widget41"
android:updatePeriodMillis="@string/UpdatePeriod"
android:minHeight="72dip"/>
布局
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/Widget41"
android:layout_height="wrap_content"
android:gravity="center_horizontal|center"
android:background="@drawable/frame41"
android:layout_width="wrap_content"
android:orientation="vertical">
<TextView android:id="@+id/widgettextview41"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_horizontal|center"
android:textColor="@android:color/black"
android:text="@string/widget_loading"
android:padding="10dip"
android:layout_marginLeft="10dip"
android:layout_marginRight="10dip"
android:textSize="5pt" />
</LinearLayout>
感谢任何帮助
答案 0 :(得分:1)
re:转移到SD卡并丢失小部件
http://developer.android.com/guide/appendix/install-location.html#ShouldNot “...如果您的应用程序使用以下任何功能,则不应允许将您的应用程序安装在外部存储上... App Widgets ...”
即,这是一个已知的,有记录的限制。
re:ldpi,
不确定它是否会为你解决,但如果在uses-sdk中你将minSdkVersion设置为适当的值并将targetSdkVersion设置为高(例如11 stating蜂窝compat),那么你不需要支持屏幕作为targetSdkVersion有效地暗示/设置targetSdkVersion支持的所有大小的默认值。
答案 1 :(得分:1)
我最近遇到了同样的问题。问题是小部件提供程序中android:updatePeriodMillis
的值。看起来你无法从这个地方的资源中引用一个值。因此,用实际数字(例如1800000)替换参考可以解决问题。
适用于Android 2.1的SE Xperia X10 mini pro。我在运行Android 2.2的设备上没有遇到这样的问题。