コンテンツ作成 > アプリ > ウィジェット

ウィジェット


コンテンツ


概要

  • テキストメモ(ウィジェット)Yotsubaなどのウィジェットを作成した際の技術メモです
  • このページに記載されているすべてのソースコードはパブリックドメインとします
    • 内容は無保証です

外部メモリにウィジェットをインストールさせない

  • 作成中

ウィジェットごとに設定を持たせる

  • 作成中

リサイズ未対応のOSでリサイズ版ウィジェットを表示させない

  • 作成中

ウィジェットがロック画面に設置されているか判定する

    /** [API 16] AppWidgetManager.OPTION_APPWIDGET_HOST_CATEGORY */
    private static final String OPTION_APPWIDGET_HOST_CATEGORY = "appWidgetCategory";

    /** [API 17] AppWidgetProviderInfo.WIDGET_CATEGORY_KEYGUARD */
    private static final int WIDGET_CATEGORY_KEYGUARD = 2;

    /**
     * ウィジェットがロック画面に設置されているか判定します。<br>
     * ロック画面ウィジェットに対応していないOSの場合は常にfalseが返ります。
     *
     * @param manager
     *            AppWidgetManager
     * @param widgetId
     *            ウィジェットID
     * @return ロック画面に設置されている場合はtrue、それ以外の場合はfalse
     */
    public static boolean isOnLockScreen(AppWidgetManager manager, int widgetId)
    {
        try
        {
            Method method = manager.getClass().getMethod("getAppWidgetOptions", int.class);
            Bundle bundle = (Bundle)method.invoke(manager, widgetId);
            int category = bundle.getInt(OPTION_APPWIDGET_HOST_CATEGORY, -1);
            if(category == WIDGET_CATEGORY_KEYGUARD)
            {
                return true;
            }
        }
        catch(Exception e)
        {
        }

        return false;
    }

コメント

名前:
コメント: