私はちょうどこのアプリケーションを発見しました:https ://market.android.com/details?id = de.j4velin.lockscreenCalendar
アラームが通常書かれている場所のロック画面内にテキストを書くことができるようになりました。
この場所にカスタムテキストを表示したいのですが、どうすればいいのか全くわかりません。
この男はこの場所でカレンダーイベントを書くことに成功しました。
手がかり//スニペットを教えてくれてありがとう。
私はちょうどこのアプリケーションを発見しました:https ://market.android.com/details?id = de.j4velin.lockscreenCalendar
アラームが通常書かれている場所のロック画面内にテキストを書くことができるようになりました。
この場所にカスタムテキストを表示したいのですが、どうすればいいのか全くわかりません。
この男はこの場所でカレンダーイベントを書くことに成功しました。
手がかり//スニペットを教えてくれてありがとう。
これは驚くほど簡単に達成できますが、驚くほど文書化されていません。次のように、システム設定でアラーム文字列を設定するだけです。
String message = "This is a test";
Settings.System.putString(context.getContentResolver(),
Settings.System.NEXT_ALARM_FORMATTED, message);
それはあなたが求めたものと正確ではありませんが、カスタムロックスクリーンのコードはここにあります。それはあなたを助けるかもしれません。
また、追加する必要があります
<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
androidmanifest.xml で
ロック画面に影響を与えるパブリック Android API 内で合法的な方法に出くわしたことはありません。そのアプリでまったく遊んでいないと、確かなことはわかりませんが、彼が好きなテキストを表示できるアクティビティを作成したのではないかと思います。次に、レシーバーを使用して SCREEN_OFF または SCREEN_ON イベントをリッスンし、その時点で「ロック」アクティビティを開始します。
注目に値するのは、あなたが求めている効果を達成するためにこのようなことをすることを選択した場合、ロック画面とまったく同じようには動作しないということです. 違いはかなりわずかで、最終的に目的には問題ないかもしれませんが、違いがあることに注意してください。また、このルートに進むと仮定すると、KeyguardManager がプログラムでその画面を無効にできないため、ユーザーが「パターン」ロックを持っている場合は機能しません。
marc1s のソリューションには 2 つの問題があります。
そのため、サービスからウィンドウ マネージャーを使用してビューを表示する方が適切です。したがって、表示したいビューを表示できます。
たとえば、私のサービスの onStartCommand にある以下のコード
WindowManager mWindowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
View mView = mInflater.inflate(R.layout.score, null);
WindowManager.LayoutParams mLayoutParams = new WindowManager.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT, 0, 0,
WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY,
WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
| WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD
| WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
/* | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON */,
PixelFormat.RGBA_8888);
mWindowManager.addView(mView, mLayoutParams);
投票された回答は、メッセージを表示するために他の誰も同じものを使用していない場合にのみ機能します。SCREEN_ON/OFF インテント アクションに受信者が 2 つ登録されている場合は、最新の受信者のメッセージが表示されます。