is it possible to show widget only for a certain android version?

前端 未结 2 2129
名媛妹妹
名媛妹妹 2020-12-13 07:13

is it possible to show widget in \"Add to home screen > Widgets\" Dialog only for a certain android version without uploading two APKs and assigning to proper SDK version nu

相关标签:
2条回答
  • 2020-12-13 08:02

    You can do it with the componentEnableSetting. Just disable the widget you don't want to have listed. The change will get active after phone-restart.

    Context context = getApplicationContext();
    String str1 = "org.classname.to.widget.provider";
    ComponentName componentName = new ComponentName(context, str1);
    PackageManager packageManager = getPackageManager();
    
    int versioncode = Integer.valueOf(android.os.Build.VERSION.SDK);    
    
    //enable widget
    packageManager.setComponentEnabledSetting(componentName, 1, 1);
    
    //disable widget
    packageManager.setComponentEnabledSetting(componentName, 2, 1);
    
    0 讨论(0)
  • 2020-12-13 08:20

    I have a way to do it without any code e.g.:

    In your res\values dir create a bools.xml file:

    <?xml version="1.0" encoding="utf-8"?> <resources> <bool name="honeycombOrAbove">false</bool> </resources>

    Create a values-v11 dir (for honeycomb or above values), copy the file to it and set the value to true.

    Then in the manifest for the widget receiver use: android:enabled="@bool/honeycombOrAbove". I also used it in the configuration activity for the widget.

    This means the widget is disabled at install time.

    0 讨论(0)
提交回复
热议问题