私のアプリでは、ストック ダイヤラーの機能を複製する必要があります。近接センサーが電話が顔に近づいたことを検出すると、画面をオフにし、電話を顔から離すと再びオンにします。
このスレッドには、部分的に機能するソリューションがあります。最適ではないプライベート API に依存していますが、さらに悪いことに、私がテストした 3 台のデバイスのうちの 1 台で動作します。Android 4.03以降をターゲットにしており、Galaxy S3、Galaxy Nexus、およびNexus 4に対してテストしています。リンクしたソリューションはGNで動作します。Nexus 4では、それはまったく何もしません(公式のandroidnadroidダイヤラーが同じコードを使用し、そこで機能することを見て、特に不可解だと思います.S3では、wakeLockを取得すると、電源ボタンを押すのと同じアクションを実行するようです. (電話をロックし、近接センサーをオフにします)。
powerManager.goToSleep を呼び出すには、電話のルートを必要とするアクセス許可が必要なため、これはテーブルから外れています。画面の明るさの設定はうまくいかないようです (3 台の電話のいずれでも適切に機能しません。明るさを変えることはできますが、画面を回転させることはできません)。 off) 他の唯一の方法は、さらに別のプライベート API (setScreenState - 私の場合、Mono4Android を使用しているため Java 相互運用性を意味します) のようです。これは、私たちがしてはいけないことの 1 つにすぎませんか? それでも、そのような機能が必要な通話アプリはたくさんあるので、世界のSkype、Vibers&Co.はこれを何らかの方法で理解する必要があり、私は私の知恵の終わりにいるので、洞察をいただければ幸いです. .