小编Tan*_*nir的帖子

OkHttp3永不超时互联网上的超时

首先,我已经阅读了很多关于我的问题的问题,但是它从来没有给我解决方案。以下是一些有关我的问题的阅读问题。

我也阅读了有关我的问题的这篇文章,但它也从未为我提供解决方案。

问题:

我在Web服务应用程序中使用Okhhtp3库。它工作正常,但是当互联网连接速度慢或连接不可靠时,它就卡住了,永远不会超时,也永远不会调用超时异常或失败方法。

这是客户端代码:

OkHttpClient client = new OkHttpClient.Builder()
            .connectTimeout(20, TimeUnit.SECONDS)
            .writeTimeout(20, TimeUnit.SECONDS)
            .readTimeout(20, TimeUnit.SECONDS)
            .retryOnConnectionFailure(false)
            .build();
Run Code Online (Sandbox Code Playgroud)

20秒后如何获得超时异常或称为故障方法?

请帮我。谢谢

java android connection-timeout okhttp okhttp3

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

如何为android studio中的特定模块生成jacoco报告?

我对这个环境很陌生。我来自原生 iOS 背景。

通过使用此https://blog.gouline.net/code-coverage-on-android-with-jacoco-92ec90c9355e,我成功地JACOCO为我的 android 项目(仅限应用程序模块)中的单元测试类生成了测试报告。

我正在做的是:

  1. 我只是jacoco.gradle在主项目中创建文件。
  2. 申请自:'../jacoco.gradle'app/build.gradle文件中
  3. app/build.gradle文件中添加了以下代码

    android { 
    ... 
        buildTypes { 
            debug { 
                testCoverageEnabled = true 
             } 
            ... 
        } 
    ... 
    }
    
    Run Code Online (Sandbox Code Playgroud)
  4. 在 Android Studio 中打开一个终端并运行如下命令

      **gradlew tasks** 
    
    Run Code Online (Sandbox Code Playgroud)
  5. 要生成报告,请运行命令

    **gradlew testBlueDebugUnitTestCoverage**
    
    Run Code Online (Sandbox Code Playgroud)
  6. 最后我在这条路径上找到了我的报告: \app\build\reports\tests\testTabletDebugUnitTest

通过使用这个http://vgaidarji.me/blog/2017/12/20/how-to-configure-jacoco-for-kotlin-and-java-project/我已经成功地为 Espresso 和 Coverage 生成了 jacoco 报告测试类(UI 和单元测试),该项目还包括 java 和 kotlin 类。

现在我的问题是:我想jacoco从我的应用程序中的所有其他模块中生成特定模块的测试报告。

系统信息:

Windows 10, 
Android Studio 3.3.1, 
Kotlin: ext.kotlin_version = '1.3.21'
Gradle:gradle:3.4.0-alpha01. 
Run Code Online (Sandbox Code Playgroud)

code-coverage jacoco android-studio test-reporting android-gradle-plugin

8
推荐指数
0
解决办法
1285
查看次数

健身startBleScan成功,但使用MI Band 2扫描已停止

我想使用我的Android应用程序实时从我的mi band 2请求传感器数据。我对此有些困难。我使用权限BLUETOOTHBLUETOOTH_ADMIN。我检查了是否可以通过Bluetooth le默认API看到我的设备。我正在尝试使用此示例https://developers.google.com/fit/android/ble-sensors?hl=ru,而且每次我都处于onScanStopped且此回调没有任何解释时,所以我没有了解失败的原因。我的代码:

GoogleApiClient client = new GoogleApiClient.Builder(this)
                    .addApi(Fitness.SENSORS_API)
                    .addScope(new Scope(Scopes.FITNESS_ACTIVITY_READ))
                    .addScope(new Scope(Scopes.FITNESS_BODY_READ))
                    .addConnectionCallbacks(this)
                    .addOnConnectionFailedListener(this)
                    .build();
            client.connect();
Run Code Online (Sandbox Code Playgroud)

在onConnected上,我有:

Fitness.getBleClient(this, GoogleSignIn.getLastSignedInAccount(this))
.startBleScan(Arrays.asList(DataType.TYPE_ACTIVITY_SEGMENT), 60, bleScanCallbacks)
        .addOnCompleteListener(new OnCompleteListener<Void>() {
            @Override
            public void onComplete(@NonNull Task<Void> task) {
                Log.d("TAG_F", "onComplete: " + task.isSuccessful());
            }
        });
Run Code Online (Sandbox Code Playgroud)

在这里,我还尝试了所有这些数据类型 DataType.TYPE_STEP_COUNT_DELTA, DataType.TYPE_HEART_RATE_BPM

这表明我的扫描成功。但是在60秒后进行回调时,我得到onScanStopped

private BleScanCallback bleScanCallbacks = new BleScanCallback() {
        @Override
        public void onDeviceFound(BleDevice bleDevice) {
            Log.d("TAG_F", "onDeviceFound: " + bleDevice.getDataTypes());

        }

        @Override
        public void onScanStopped() {
            Log.d("TAG_F", "onScanStopped: "); …
Run Code Online (Sandbox Code Playgroud)

android google-fit-sdk google-fit

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

whatsapp在Android上使用c2dm aka GCM吗?

我一直以为WhatsApp使用c2dm进行邮件传递。但是,当我看到正在运行的应用程序时,MessageService始终在运行。您不需要运行服务即可接收c2dm。

为什么要始终保持服务运行?

Facebook更加奇怪,他们有3种服务正在运行。其中之一是用于上传。他们开始偷我的照片了吗?

android android-service android-c2dm

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

反应本机错误:“权限拒绝:启动意图”

我设法在我的应用程序中添加了 facebook 登录和 google 登录,但我想我可能做错了什么。在我开始添加登录之前,我之前做了一个用户意图的启动活动,因为我是一个新手,所以我在某个地方搞砸了,并且已经挣扎了 2 天知道。每当我尝试执行 react-native run-android 时,项目都会成功构建,但模拟器不会自动打开应用程序,因为我收到“正在启动:

Intent { cmp=com.happyo/.MainActivity }
java.lang.SecurityException: Permission Denial: starting Intent { flg=0x10000000 cmp=com.happyo/.MainActivity } from null (pid=4430, uid=2000) not exported from uid 10085".
Run Code Online (Sandbox Code Playgroud)

请我绝望我不知道如何解决它,在此先感谢!

这是我的 AndroidManifest.xml:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.happyo"
    android:versionCode="1"
    android:versionName="1.0">

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>

    <uses-sdk
        android:minSdkVersion="16"
        android:targetSdkVersion="22" />


    <application
      android:name=".MainApplication"
      android:allowBackup="true"
      android:label="@string/app_name"
      android:exported="true"
      android:icon="@mipmap/ic_launcher"
      android:theme="@style/AppTheme">
        <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/>
        <meta-data
            android:name="com.google.android.geo.API_KEY"
            android:value="{myappkey}"/>
      <activity
        android:name=".SplashActivity"
        android:label="@string/app_name"
        android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
        android:windowSoftInputMode="adjustResize"
          android:theme="@style/SplashTheme">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter> …
Run Code Online (Sandbox Code Playgroud)

java android native reactjs

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

android 8.0 api level 27媒体录制器启动失败,音频源语音通话

我使用媒体录音机库录制语音通话,它在几乎Android版本中运行良好,除了android Oreo 8.0 API级别27.当我使用音频源VOICE_CALL我得到运行时异常启动失败,当我使用音频源VOICE_COMMUNICATION我没有得到对方的声音我只有我的声音.

//            recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_CALL);
            recorder.setAudioSource(AudioSource);


            recorder.setOutputFormat(AudioFormate);
            recorder.setAudioEncoder(AudioEncoding);

            recorder.setOutputFile(down);
     recorder.start();
Run Code Online (Sandbox Code Playgroud)

能否请你帮忙

android

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

SMS Retriever API 如何检索短信发件人号码

是否可以获取我在 android 中收到的短信的手机号码?我们正在尝试通过发送 SMS 并从运营商处获取来验证用户的手机号码,但接下来的步骤涉及通过读取 SMS 进行验证。我们面临的问题是,如果我从任何其他移动设备发送相同的消息,则无法验证原始 SMS 号码。它盲目地读取短信。

android

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

DateFormat的parse()与SimpleDateFormat之间的区别

我正在尝试使用LocalDateTime.parse该方法解析日期,但是我遇到了以下错误。如果我使用SimpleDateFormat简单的日期格式对象,则日期字符串将被解析。

有没有人遇到这个问题!从DateFormat和解析之间有什么区别LocalDateTime

package com.example.demo;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Date;

public class App {

    public static final String DATE_TIME_PATTERN = "dd-MM-yyyy hh:mm:ss.SSS";

    public static final DateFormat DATE_TIME_FORMAT = new SimpleDateFormat(DATE_TIME_PATTERN);

    public static final String SEPERATOR = ",";

    public static void main(String[] args) {
        try {
            Date date = DATE_TIME_FORMAT.parse("12-03-2019 10:28:50.013");
            System.out.println("date : {} " + date);

            LocalDateTime startTimestamp = LocalDateTime.parse("12-03-2019 10:28:50.013", DateTimeFormatter.ofPattern(DATE_TIME_PATTERN)).plusNanos(1000000);
            System.out.println("startTimestamp : {} " + startTimestamp);
        } …
Run Code Online (Sandbox Code Playgroud)

java java-8

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

如何将 kotlin.Pair 与数据绑定一起使用?

只要我使用具有两个字段的数据模型,它就可以正常工作。

但是当我尝试使用 kotlin 时。Pair 无法构建并给出 nit 信息错误:

....\DataBinderMapperImpl.java:20: error: cannot find symbol
import .....databinding.ItemCurrencyBindingImpl;


  symbol:   class ItemCurrencyBindingImpl

  location: package ......databinding
Run Code Online (Sandbox Code Playgroud)

xml代码:

    <variable
        name="currency"
        type="kotlin.Pair"/>
</data>

<TextView
    android:layout_width="@dimen/currency_dropdown_width"
    android:layout_height="wrap_content"
    android:layout_gravity="center_vertical"
    android:gravity="center|start"
    android:padding="@dimen/currency_dropdown_padding"
    android:text="@{currency.first}"
    app:drawableEnd="@{currency.second}"
    app:drawableSize="@{@dimen/currency_dropdown_image_size}"
    tools:text="@string/pound"/></layout>
Run Code Online (Sandbox Code Playgroud)

android kotlin android-databinding

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

第一个和最后一个项目的 SnapHelper 问题

我正在使用 Recyclerview 和 PageSnapHelper 创建图像轮播。

第一项 - 不居中在此处输入图片说明

第二项居中

第一个项目不居中,后续项目应该居中,我使用项目装饰器实现了这一点。RecyclerView 位于嵌套滚动视图中。

问题: 滚动不流畅,我覆盖了 findTargetSnapPosition,它在第一次滚动时滚动了 2 个项目。

 override fun findTargetSnapPosition(layoutManager: RecyclerView.LayoutManager, velocityX: Int, velocityY: Int): Int {

    if (layoutManager !is RecyclerView.SmoothScroller.ScrollVectorProvider) {
        return RecyclerView.NO_POSITION
    }

    val currentView = findSnapView(layoutManager) ?: return RecyclerView.NO_POSITION

    val layoutManager = layoutManager as LinearLayoutManager

    val position1 = layoutManager.findFirstVisibleItemPosition()
    val position2 = layoutManager.findLastVisibleItemPosition()

    var currentPosition = layoutManager.getPosition(currentView)



    if (velocityX > 500) {
        currentPosition = position2
    } else if (velocityX < 500) {
        currentPosition = position1
    }

    return if (currentPosition …
Run Code Online (Sandbox Code Playgroud)

android android-recyclerview pagersnaphelper

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