24

2つのAPKをアップロードして適切なSDKバージョン番号を割り当てずに、特定のAndroidバージョンの[ホーム画面に追加>ウィジェット]ダイアログにウィジェットを表示することはできますか?

4

2 に答える 2

32

コードなしでそれを行う方法があります。例:

res \ valuesディレクトリにbools.xmlファイルを作成します:

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

値を作成します-v11dir(ハニカム以上の値の場合)、ファイルをそのファイルにコピーし、値をtrueに設定します。

次に、ウィジェットレシーバーのマニフェストでandroid:enabled = "@ bool/honeycombOrAbove"を使用します。ウィジェットの構成アクティビティでも使用しました。

これは、ウィジェットがインストール時に無効になっていることを意味します。

于 2011-08-31T19:43:06.773 に答える
9

componentEnableSettingを使用してこれを行うことができます。リストしたくないウィジェットを無効にするだけです。変更は、電話の再起動後にアクティブになります。

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);
于 2011-08-15T11:44:57.380 に答える