小编sae*_*eed的帖子

如何检查设备是否支持 BLE Gatt 客户端模式?

在 android 中,我使用 BLE 两种模式作为外设和客户端。但我想检查isBLeGattClientSupported()

正如我们所知,android 中的某些设备无法充当 BLE Gatt 客户端,因此只想抛出此类设备无法充当客户端的异常。

我有 BLE 过去的其余部分,我的代码在两种模式下都可以正常工作,但是当我告诉我的设备充当客户端并且该设备无法充当客户端时卡住了。

android bluetooth-lowenergy

5
推荐指数
1
解决办法
145
查看次数

JAVA Jacoco 行覆盖不正确

我正在尝试使用 Jacoco 来获取 Java 8 项目的代码覆盖率。由于某种原因,我看到线路覆盖率较低。

摇篮版本:4.8.1

Gradle.build

apply plugin: "java"
apply plugin: "jacoco"

jacoco {
    toolVersion = "0.8.5    "
    reportsDir = file("$buildDir/customJacocoReportDir")
}
jacocoTestReport {
    reports {
        xml.enabled false
        csv.enabled false
        html.destination file("${buildDir}/jacocoHtml")
    }
}
dependencies {
    testCompile group: 'org.easymock', name: 'easymock', version: '3.6'
    testCompile group: 'org.powermock', name: 'powermock-easymock-release-full', version: '1.6.4'
}
Run Code Online (Sandbox Code Playgroud)

当我使用 Java 调试器时,我在测试过程中看到以下行被命中:

public class RangeStateStore {
    public void setRangeState(KeyValueStore<String, RangeStateObj>  kvStorage, RangeStateObj rangeStateObj) {
        kvStorage.put(rangeStateObj.key, rangeStateObj);
    }
Run Code Online (Sandbox Code Playgroud)

但在报道中: 雅科科报道

当我使用 IntelliJ 覆盖率运行覆盖率时,它受到了欢迎: 智能覆盖

有想法吗?

java code-coverage gradle jacoco

5
推荐指数
1
解决办法
974
查看次数

卡住部分唤醒锁 - AudioMix

首先,我不确定这是否是报告此问题的正确位置,但在任何地方都找不到任何信息或任何类型的文档。

几天(也许几周)前,Android Vitals 开始提醒我们 Google Play 仪表板中的“不良行为”。警报显示“部分唤醒锁定卡住”,我们在所有应用程序中都得到了它,但百分比非常低。目前,最高比率为0.93%。我不确定那是怎么回事,因为我们的应用程序中没有任何唤醒锁,所以我开始挖掘。

到目前为止,发现了一些有趣的事情:

  1. 每个唤醒锁都有 TAG,看起来 Android Vitals 正在通过该 TAG 跟踪它们。出现最多的 TAG 是AudioMix

  2. 大多数遇到卡住唤醒锁的设备是华为Android Vitals

  3. 可能很重要的细节——所有的应用程序都是基于WebView的。我们有一些原生功能(IAP、AdMob、Firebase),但假设 90% 的应用程序是 Web 内容。

  4. 我使用adb工具来检查唤醒外观正在运行以及它们运行了多长时间。所以我做了几个场景:

    • 使用我的应用程序:启动应用程序 AudioMix 唤醒锁定后启动。如果我终止应用程序,AudioMix 唤醒锁会立即停止,这是正确的行为。但是当我将应用程序放在后台 AudioMix 上时,唤醒锁卡住了 1-2 分钟。我认为这是问题所在;
    • 来自 Play 商店的随机原生游戏:与上述相同的步骤,但 AudioMix 会立即在后台停止。
    • 移动 Chrome 中的随机网站:现在,这真的很有趣。在后台 AudioMix 再次卡住大约 1-2 分钟。

有点迷失在这里,但似乎这是 Chromium 的问题。有什么我可以“神奇地”铁杆的东西。我已经阅读了本网站上的帖子,但这里的情况似乎并非如此。有什么建议?

android webview chromium wakelock google-play

5
推荐指数
1
解决办法
635
查看次数

如何使用 opencv python 计算乐高积木上的孔数?

我正在开发我的 python 项目,我需要计算每个乐高积木组件中有多少个孔。我将从输入 .json 文件中获取有关需要计算哪个程序集的信息,如下所示:

"img_001": [
    {
        "red": "0",
        "blue": "2",
        "white": "1",
        "grey": "1",
        "yellow": "1"
    },
    {
        "red": "0",
        "blue": "1",
        "white": "0",
        "grey": "1",
        "yellow": "0"
Run Code Online (Sandbox Code Playgroud)

因此,我需要识别必须按颜色计数的组件。然后我必须在特定的砖块组装中确定孔的数量。

这是我使用的图像示例:

这是我使用的图像示例

我开始将图像更改为 HSV 颜色空间,并使用轨迹栏为每种颜色找到了一个蒙版。通过使用,cv2.inRange我得到了一个掩模,例如红色: 不带任何滤镜的红色掩模 如您所见,反射光没有帮助。此时我不知道我该如何前进。我觉得我应该用来cv2.findContour获取每个组件的轮廓。我认为直方图均衡在这里可能有用。为了检测圆圈我想使用cv2.HoughCircles或者也许cv2.SimpleBloopDetector。但我不知道如何检查每个区域有多少块砖。输出只是特定装配中的一些孔。你能给我一些想法吗?哪个 OpenCv 函数可能适用于此?您将如何解决这种图像处理问题?感谢您的回答。

python opencv image-processing

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

Docker 错误 - CommandError: "0.0.0.0:" 不是有效的端口号或地址:端口对

所以我有一个 docker 文件,我打算构建并推送到 Google Cloud Run,它看起来像这样:

# pull official base image
FROM python:3.7-slim

# set work directory
WORKDIR /usr/src/app

# set environment variables
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1

# install dependencies
RUN pip install --upgrade pip
COPY ./requirements.txt /usr/src/app/requirements.txt
RUN pip install -r requirements.txt

# copy project
COPY . /usr/src/app/

CMD python manage.py runserver 0.0.0.0:$PORT
Run Code Online (Sandbox Code Playgroud)

这个想法是,一旦我将它推送到 Cloud Run,我的 Django 项目将在 0.0.0.0:$PORT 上运行,其中环境变量 $PORT 的值由 Google Cloud Run 自动设置。

我尝试在本地运行以下图像的容器,看看这是否有效。我将 $PORT 设置为 80,然后当我运行 docker 镜像的容器时,我得到以下信息:

"CommandError: "0.0.0.0:" is not a …
Run Code Online (Sandbox Code Playgroud)

python docker google-cloud-platform google-cloud-run

3
推荐指数
2
解决办法
3093
查看次数

ValueError:当 n_samples=0、test_size=0.2 和 train_size=None 时,生成的训练集将为空。调整上述任何参数

我写了一个文本分类程序。当我运行该程序时,它会崩溃并显示错误,如下面的屏幕截图所示:

如此屏幕截图所示

ValueError:当 n_samples=0、test_size=0.2 和 train_size=None 时,生成的训练集将为空。调整上述任何参数。

这是我的代码:

from sklearn.model_selection import train_test_split
from gensim.models.word2vec import Word2Vec
from sklearn.preprocessing import scale
from sklearn.linear_model import SGDClassifier
import nltk, string, json
import numpy as np

def cleanText(corpus):
    reviews = []
    for dd in corpus:
        #for d in dd:
        try:
            words = nltk.word_tokenize(dd['description'])
            words = [w.lower() for w in words]
            reviews.append(words)
            #break
        except:
            pass
    return reviews

with open('C:\\NLP\\bad.json') as fin:
    text = json.load(fin)
    neg_rev = cleanText(text)

with open('C:\\NLP\\good.json') as fin:
    text = json.load(fin)
    pos_rev = …
Run Code Online (Sandbox Code Playgroud)

python nlp scikit-learn

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

为什么.split("\\")会生成异常?

我有一个表示目录的String,\用于分隔文件夹.我想拆分基于"\\":

String address = "C:\\saeed\\test";
String[] splited = address.split("\\");
Run Code Online (Sandbox Code Playgroud)

但是,这给了我一个java.util.regex.PatternSyntaxException.

java string split

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

为什么getStringExtra没有给出正确的输出?

我正试图将一些String从一个意图传递到另一个意图.但是adt说:

关键文本期望String但值是android.text.SpannableString.返回了默认值.

但是我使用String作为关键而不是它声称的!

这是我第一次活动的代码:

private int CONTACTS_ACTIVITY_REQUEST = 1001;
public static final String TEXT_KEY = "text";
...

Intent intent = new Intent(this, ContactsActivity.class);
intent.putExtra(TEXT_KEY, text.getText());
startActivityForResult(intent, CONTACTS_ACTIVITY_REQUEST);
Run Code Online (Sandbox Code Playgroud)

我的第二项活动:

Intent intent = this.getIntent();
text = intent.getStringExtra(MainActivity.TEXT_KEY);
Run Code Online (Sandbox Code Playgroud)

谢谢.

ps这里是完整的堆栈跟踪:

03-22 14:51:32.975: W/Bundle(1248): Key text expected String but value was a android.text.SpannableString.  The default value <null> was returned. 
03-22 14:51:33.006: W/Bundle(1248): Attempt to cast generated internal exception: 
03-22 14:51:33.006: W/Bundle(1248): java.lang.ClassCastException: android.text.SpannableString cannot be cast to java.lang.String 
03-22 14:51:33.006: W/Bundle(1248):     at android.os.Bundle.getString(Bundle.java:1085) 03-22 …
Run Code Online (Sandbox Code Playgroud)

android android-intent

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

Swift ^ 双重运算

我正在尝试解决一个挑战,但代码一直失败。我需要对双打执行 ^ 操作。挑战是如果我调用一个函数 calculate(3,2,^) 那么我应该得到结果 9。

我尝试了下面的代码,但由于此错误而失败:

错误:二元运算符“^”不能应用于两个“双”操作数

下面是我的代码:

func calc(a: Double, b: Double, op: Character) -> Double {
var c:Double
c = 0
if op == "+"
{
    c =  a + b
}
else if op == "-"
{
    c =  a - b
}
else if op == "*"
{
    c =  a * b
}
else if op == "/"
{
    c =  a / b
}
else if op == "%"
{
    let rem = …
Run Code Online (Sandbox Code Playgroud)

binary double calculator operation swift

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

如何用Scanner java阅读非英语字符?

在那里我正在制作这个应用程序来改变字幕文件.当我测试它时,我遇到了一个奇怪的问题,当我在非英语(例如波斯语)上测试它时程序将无法读取该文件.这就是我在程序中阅读字幕的方式:

    Scanner sub = null;
    try {
      sub = new Scanner(new File(address));
    } catch (FileNotFoundException ex) {
      ex.printStackTrace();
    }
while(sub.hasNext()){
  String sentence = sub.nextLine();
  //some magical stuff here :)
}
Run Code Online (Sandbox Code Playgroud)

其中address是.srt文件的String保存位置.

我应该怎么做才能让程序读取文件?

java subtitle java.util.scanner

0
推荐指数
1
解决办法
871
查看次数