只有SDK版本11或更高版本的Android主屏幕小部件

时间:2012-09-28 12:16:34

标签: android android-layout layout android-widget

我正在使用应用程序最低sdk版本3.我希望该应用程序仅支持OS 3.0(sdk - 11)或更高版本的主屏幕小部件。即,仅在小部件中显示OS 3.0或更高版本的用户。怎么做?

我已经问了一个问题,如果可能的话,请告诉我。
How to get Number of records displayed in RemoteView

3 个答案:

答案 0 :(得分:1)

解决方案1:
发布2 APK:

  • 在您的清单中使用android:minSdkVersion="11"并使用您的小部件实现
  • 另一个在您的清单中有android:minSdkVersion="3"且没有小部件实现的

解决方案2:
保留minSdk 3(android:minSdkVersion="3")并在扩展AppWidgetProvider的类的onUpdateonReceive方法中检查SDK版本。仅在Build.VERSION.SKD_INT >= 11时才能完成工作 同样,如果您有App Widget Configuration Activity,请在onCreate()中执行以下操作:

if (Build.VERSION.SDK_INT < 11) {
    setResult(RESULT_CANCELED);
    Toast.makeText(this, getString(R.string.widget_error_cannot_be_installed), Toast.LENGTH_LONG).show();
    finish();
}

请记住,操作系统<3.0的用户将在其窗口小部件库中看到窗口小部件,但无法添加它。因此,您可能会显示Toast类似“您的Android操作系统版本太低而无法添加小部件”。

如果您发现任何其他解决方案,请告诉我们 感谢

答案 1 :(得分:0)

我面临同样的问题。

<强>解决方案:

如果android os 2.2或更低版本然后制作您的数据的静态列表。

否则你必须实现listview并设置all contains。

如果您发现任何问题,请告诉我。

答案 2 :(得分:-1)

1)您可以使用Build.VERSION.SDK_INT检查操作系统版本,并将其与Build.VERSION_CODES中定义的版本代码进行比较。

2)请记住,在2.0之前的操作系统上(如果我没记错的话)ClassLoader对加载类的任何方法中提到的任何“不支持”类或方法都非常生气,即使你实际上从未调用过这些方法。因此,请确保不要导入将在1.5中使用的1.5中没有的任何内容。