使用广播接收器android在来电时关闭屏幕



我想防止我的android手机屏幕在来电时打开。我找了很多,但找不到任何解决方案。我可以在活动中使用"系统亮度"关闭屏幕,但在来电时不能在广播接收器中关闭。谁有解决方案?我在活动中使用了以下代码,它是有效的,但在广播接收器中,它在onReceive方法中不起作用。

WindowManager.LayoutParams layoutParam = getWindow().getAttributes();
oldBrightness = android.provider.Settings.System.getInt(getContentResolver(),          
android.provider.Settings.System.SCREEN_BRIGHTNESS)/255f;
layoutParam.screenBrightness = 0; 
layoutParam.flags |= WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON;
getWindow().setAttributes(layoutParam);

尝试以下代码关闭屏幕,而不是控制亮度:

DevicePolicyManager mDPM = (DevicePolicyManager)getSystemService(Context.DEVICE_POLICY_SERVICE);
mDPM.lockNow();
Have you declared broadcast receiver in manifest file.
Please check below code in your manifest file:
1.    
            <uses-permission android:name="android.permission.READ_PHONE_STATE" />
            <receiver android:name=".IncomingCallReceiver " android:enabled="true">
                <intent-filter>
                <action android:name="android.intent.action.PHONE_STATE" />
                </intent-filter>
            </receiver> 
2.
Receiver File:IncomingCallReceiver.java
 public class IncomingCallReceiver extends BroadcastReceiver
 {
@Override
      public void onReceive(Context mContext, Intent intent)
      {
          Toast.makeText(mContext, "call is coming", Toast.LENGTH_SHORT).show();
}

最新更新