小编Muh*_*rat的帖子

以编程方式安装Android M Light and Dark状态栏 - 如何让它再次变黑?

在Android M中,我们可以使状态栏图标变暗.为此,我们可以在主题的xml中指定属性:

<item name="android:windowLightStatusBar">true</item>
Run Code Online (Sandbox Code Playgroud)

或者我们使用以下代码在运行时设置它:

View someView = findViewById(R.id.some_view);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
    someView.setSystemUiVisibility(someView.getSystemUiVisibility() | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
}
Run Code Online (Sandbox Code Playgroud)

它实际上工作正常.但问题是如何在运行时将状态栏模式正确设置为黑暗?

我已经尝试过那些变种:

// Makes status bar mode dark, but also hides it along with all navigation views. 
someView.setSystemUiVisibility(someView.getSystemUiVisibility() | ~View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);

// Does nothing 
someView.setSystemUiVisibility(someView.getSystemUiVisibility() & ~View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);

// Also does nothing 
someView.setSystemUiVisibility(someView.getSystemUiVisibility() ^ View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
Run Code Online (Sandbox Code Playgroud)

那么如何才能以正确的方式完成?

user-interface android android-statusbar android-6.0-marshmallow

28
推荐指数
7
解决办法
3万
查看次数

当WhatsApp Web仍在运行时,WhatsApp如何进行端到端加密

我不确定这是否是正确的问题,但我很确定我会问一个非常愚蠢的问题.我是开发人员,但对最新的加密技术一无所知.我在许多网站上看过,WhatsApp花了很多年才想出这种"技术",而且我们的信息和一切现在都是安全的.

我有几个问题一直困扰着我.

  1. 如果解密消息需要加密密钥,那么密钥如何转移到接收方?当然使用WhatsApp服务器?我们怎么知道他们没有让它解密聊天?仅仅因为我们相信他们?如果在我的手机上加密了一条消息,接收方需要知道加密密钥才能解密,他们如何获得该密钥?使用WhatsApp服务器?为什么WhatsApp不能保持这个密钥是如此困难?

  2. 如果我向我的一个朋友发送视频,上传需要一段时间,上传时会显示进度条..如果我将同一个视频转发给我的其他几个朋友,它会在一秒内立即发送.怎么样?它没有加密吗?如果没有再次加密,它怎么会被发送?

  3. 最后,WhatsApp网络如何运作?如果WhatsApp的网站可以显示我的所有消息(无论我如何登录),为什么服务器人都看不到它?他们怎么不能模仿我的登录并且能够看到我正在做的一切?我刚刚使用WhatsApp网络向我的一位朋友发送了一张图片,它被发送了,他看到了......一切都很好.在打开WhatsApp之前我关闭了我的WiFi,图像甚至没有下载!它甚至不在我的手机中..当我的手机中甚至不存在WhatsApp网络时,WhatsApp网站如何使用我的"手机"发送该图像?(注意:我的设置不允许立即下载图像).很显然,WhatsApp并没有和我刚刚发送的手机通话,因为它在服务器上.

有人可以帮我理解这个吗?

编辑:一个帮助我理解的页面的链接也足够了..如果它太长,你不必在这里写一切.虽然我已经在Google上搜索了相当长的一段时间.这个网站上也没有人问过这个问题.

encryption android end-to-end ios whatsapp

9
推荐指数
0
解决办法
1254
查看次数

如何从Firebase检索数据以传入angularfire2/version-5中的数组

我在Firebase中有一些简单的条目,如:

这个结构

我想要的只是获取这些值(每个百分比)并将它们传递给一个名为labels的数组.这样我就可以在我的代码中使用该数组了.这是我的问题.

现在,对我而言,这似乎很容易,但显然不是.

首先我所面对的是示例中的@angularfire第5版差异(但在他们的GitHub文档中很容易理解).所以其次,我尝试获取数据:

this.items = db.list('/percentage').valueChanges();
Run Code Online (Sandbox Code Playgroud)

所以我这样做并在控制台上查看它. 这就是我得到的

然后我查看关于SO的其他问题,第三,在示例中,我被告知'它的异步数据,所以你应该订阅它'我订阅并再次在控制台中记录它以查看我的数组的样子. 这就是我得到的 当然,在那之后我会查看更多的例子哦,事实证明我应该映射()它.然后我这样做

this.labels = db.list('/percentage').valueChanges().map(res => this.labels = res);
Run Code Online (Sandbox Code Playgroud)

:我明白了

我没有得到任何错误,但我不知道如何将这些数据作为一个对我有用的数组.如果有人向我解释一个方法,我会很高兴.谢谢

firebase typescript firebase-realtime-database angularfire2 angular

3
推荐指数
1
解决办法
4784
查看次数