web-dev-qa-db-ja.com

BroadcastReceiver内でgetWindowManager()を使用する

BroadcastReceiver内でgetWindowManager()を使用しようとしていますが、このエラーが発生します。

「メソッドgetWindowManager()は、タイプMyReceiverに対して未定義です」

display.getWidth()display.getHeight()を取得するだけです

ヒントはありますか?どうもありがとう。

42
Ton

getWindowManager()Activityのメソッドです。この方法は使用できません。 WindowManager documentation で説明されているように、WindowManagerを取得するにはgetSystemService()を使用してください。

53
CommonsWare

コンテキストのみが必要なシンプルなコード

        DisplayMetrics metrics = new DisplayMetrics();
        WindowManager windowManager = (WindowManager) context
                .getSystemService(Context.WINDOW_SERVICE);
        windowManager.getDefaultDisplay().getMetrics(metrics);

詳細は ドキュメント をご覧ください

または、これを使用できます

context.getResources().getDisplayMetrics()

しかし、ドキュメントを読む

このリソースオブジェクトに対して有効な現在の表示メトリックを返します。返されたオブジェクトは、read-onlyとして扱う必要があります。

109
Dawid Drozd