首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用broadcast receiver android在来电过程中关闭屏幕

使用broadcast receiver android在来电过程中关闭屏幕
EN

Stack Overflow用户
提问于 2014-09-18 13:46:22
回答 2查看 348关注 0票数 2

我想阻止我的android手机屏幕在来电时打开。我找了这么多,但没有找到任何解决方案。我可以在活动中使用“系统亮度”关闭屏幕,但不能在来电期间在广播接收器中关闭屏幕。有谁有解决方案吗?我在我的活动中使用了以下代码,它可以工作,但在广播接收器中,它不能在onReceive方法中工作。

代码语言:javascript
复制
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);
EN

回答 2

Stack Overflow用户

发布于 2014-09-18 14:28:16

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

代码语言:javascript
复制
DevicePolicyManager mDPM = (DevicePolicyManager)getSystemService(Context.DEVICE_POLICY_SERVICE);
mDPM.lockNow();
票数 0
EN

Stack Overflow用户

发布于 2014-09-18 15:34:05

代码语言:javascript
复制
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();
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25905028

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档