Android,小部件不可用不明原因

时间:2011-03-12 13:07:01

标签: android widget

我在菜单“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>

感谢任何帮助

2 个答案:

答案 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的设备上没有遇到这样的问题。