小编Kho*_*khe的帖子

BroadcastReceiver SMS_Received无法在新设备上运行

在经历了几个资源和问题后,我仍然面临检测传入SMS消息的问题.

下面的代码显示了基础知识:

显示Toast onReceive的广播接收器类

public class IncomingSms extends BroadcastReceiver {
    public void onReceive(Context context, Intent intent) {
        Toast.makeText(context, "something received", Toast.LENGTH_SHORT).show();
    }
}
Run Code Online (Sandbox Code Playgroud)

简单清单,注册接收者和权限

<application
    <receiver 
        android:name=".IncomingSms"
        android:permission="android.permission.BROADCAST_SMS"
        android:exported="true">

        <intent-filter android:priority="2147483647" >
            <action android:name="android.provider.Telephony.SMS_RECEIVED" />
        </intent-filter>
    </receiver>

</application>

<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.SEND_SMS" />
Run Code Online (Sandbox Code Playgroud)

上面的代码声明并注册接收器,并具有适当的权限.此外,优先级设置为MAX_INT或2147483647.

我的设备是Nexus 6P,安装了默认的Messenger应用程序(我也尝试过环聊).该应用程序仍然不显示我的祝酒词.尝试使用较旧的三星设备后,正确打印了祝酒词.

优先问题

我在6P上安装了一个名为Manifest Viewer的应用程序,它允许我查看设备上安装的应用程序的manifest.xml.我检查了Messenger和Hangouts的清单,作为SMS标签的接收者,发现它们都指定了2147483647的优先级.看起来这两个信使应用程序最大优先级,一旦他们消费了消息,他们不允许其他应用程序进行干预.请注意,这些是Google应用程序的库存,而不是第三方.

在这一点上,我很困惑:

  • 他们为什么要这样做?
  • 如何绕过它?

非常感谢

sms android broadcastreceiver android-permissions

11
推荐指数
1
解决办法
1万
查看次数

Apache2 mod_expires 不起作用

我最近在支持 Apache2 的 VPS 上部署了一个网站,并且正在研究 YSlow 的性能改进建议。这些改进包括使用 mod_deflate 和 mod_expires,由于我有 root 访问权限,我可以直接编辑 Apache 配置文件。

mod_deflate 现在正在工作,但我遇到了 mod_expires 的问题,所以这是我所做的:

启用过期模块并重新启动服务器

a2enmod expires
service apache2 restart
Run Code Online (Sandbox Code Playgroud)

在 mods_enabled 下创建一个新文件“expires.conf”,其中包含以下内容:

<IfModule mod_expires.c>
  # Enable expirations
  ExpiresActive On

  # Default directive
  ExpiresDefault "access plus 1 month"

  # My favicon
  ExpiresByType image/x-icon "access plus 1 year"

  # Images
  ExpiresByType image/gif "access plus 1 month"
  ExpiresByType image/png "access plus 1 month"
  ExpiresByType image/jpg "access plus 1 month"
  ExpiresByType image/jpeg "access plus 1 month"

  # CSS
  ExpiresByType …
Run Code Online (Sandbox Code Playgroud)

apache .htaccess mod-expires

6
推荐指数
1
解决办法
7731
查看次数

解释PlayFramework 2中的测试工具之间的差异(WithApplication,WithServer,WithBrowser,InMemory等...)

我是Web应用程序开发的新手,使用Play Framework更是如此.我的目标是按照测试驱动开发原则确保我的应用程序经过充分测试.

Play在其文档中提供了几种测试Play应用程序的方法,而且我经常难以决定我应该做哪些类型的测试,以及哪些测试可以不用.

1)测试控制器与WithApplication vs WithServer

  • 选项1是将控制器测试为普通单元测试
  • 选项2是使用WithApplication和FakeRequest测试路由(知道路由调用控制器功能,这种方法感觉比选项1更完整)
  • 选项3是使用带有WS的WithServer发出请求并等待响应(这与选项2非常相似,除非它使用真实服务器)

使用选项3进行测试只是使用选项2进行测试时的冗余吗?可以丢弃一个而不是另一个吗?

2)在内存DB与真实DB中

  • 内存中的DB(H2)似乎不支持某些Postgres功能
  • 针对内存数据库的测试并不反映与真实数据库的连接

基于上述原因,我觉得使用内存数据库进行测试可能会导致未捕获的错误.现在,我明白使用真正的数据库不再称为单元测试,因为存在外部依赖性.但在这种情况下,单元测试真的是我们想要的吗?

3)WithBrowser(Selenium)

这种方法的优点很明显,而且可能是不可替代的(对吧?)

在测试Web应用程序时,我似乎错过了一些东西,并且非常感谢澄清.

testing integration-testing unit-testing playframework playframework-2.0

4
推荐指数
1
解决办法
347
查看次数

在设计时在 Delphi 的 Object Inspector colorpicker 中查看 webcolors 和自定义颜色

在设计时设计表单及其组件时,color类型的某些属性允许我们从预定义的默认 Delphi 颜色列表中选择颜色:

在此输入图像描述

双击此属性,我们甚至可以看到一个颜色选择器,其中列出了一些附加选项并提供了定义自定义颜色的功能。

但是,我想为我的应用程序定义一个自定义调色板;也就是说,将一些命名的clWeb颜色添加到下拉列表中(上面的屏幕截图),甚至可能是我可以自己命名的颜色。

简而言之,我希望在 IDE 中设计时选择颜色时制作一组一致的网页颜色,以便始终出现在下拉颜色列表中,这样我就可以以现代但连贯的方式为我的组件着色。

主题虽然非常统一,但过于僵化,并且在某些地方引入了奇怪的故障。

有什么建议么?

德尔福11.3

delphi delphi-11-alexandria

4
推荐指数
1
解决办法
140
查看次数

在 Delphi 中,将 owner 设置为 Application 而不是 nil 有什么好处?

“应用程序”是 VCL 的一部分,因此不是线程安全的(可能用于维护它拥有的非线程安全组件列表)。

我正在处理的项目有几个实例,其中 Application 设置为 Owner,而 Self 不是一个选项(类方法)。鉴于变量在此函数结束时被释放,我想改为传递“nil”。

假设有人忘记释放应用程序拥有的变量:

当应用程序关闭时,内存被释放。但我也读到 Windows 会跟踪分配给每个进程的内存。因此,理论上,如果未释放 nil 拥有的变量,Windows 将在应用程序/进程终止时释放它。

那么,将所有者设置为 Application 而不是 Nil 有什么好处?

以下问题讨论了释放 nil 拥有的 vars 的责任,但仅限于此:

组件构造函数中nil owner是什么意思

memory delphi pascal

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

jQuery单击不触发异步添加的元素

我已经看到了应该回答我的其他问题,但由于某种原因,他们没有.我指的是:
- jquery点击事件没有解雇?
- jquery函数不适用于异步加载的dom元素

我首先使用click()尝试将所选"li"的颜色更改为粉红色.它有效,但不适用于动态附加的"li".我尝试使用on(),因为live()现已弃用.我很惊讶它仍然没有用.

这是您可以运行的示例:

使用Javascript:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js">
</script>

<script>
$(document).ready(function(){
  $("#btn1").click(function(){
    $("ol").append("<li class='test'> Appended item </li>");
  });
});
</script>

<script>
$(function () {
  $('.test').on('click', function () {
    $(this).css("background-color","pink");
  });
});
</script>
Run Code Online (Sandbox Code Playgroud)

HTML:

<body>
  <p>This is a paragraph.</p>
  <p>This is another paragraph.</p>
  <ol>
    <li class='test'> List item 1 </li>
    <li class='test'> List item 2 </li>
    <li class='test'> List item 3 </li>
  </ol>

  <button id="btn1">Append list item</button>
</body>
Run Code Online (Sandbox Code Playgroud)

有人有线索吗?
非常感谢!

jquery asynchronous append

2
推荐指数
1
解决办法
5907
查看次数