小编Exc*_*ion的帖子

使用IPP(Internet打印协议)或LPR(行式打印机远程)在android中打印文件

我的要求是在不使用任何基于云的服务的情况下从Android设备打印文件.

我已经能够使用"Raw"打印协议实现它,即只需将文件发送到端口9100的打印机IP地址即可.以下是代码段:

 client = new Socket(ip,port); //Port is 9100
 byte[] mybytearray = new byte[(int) file.length()]; //create a byte array to file
 fileInputStream = new FileInputStream(file);
 bufferedInputStream = new BufferedInputStream(fileInputStream);
 bufferedInputStream.read(mybytearray, 0, mybytearray.length); //read the file
 outputStream = client.getOutputStream();
 outputStream.write(mybytearray, 0, mybytearray.length); //write file to the output stream byte by byte
 outputStream.flush();
 bufferedInputStream.close();
 outputStream.close();
Run Code Online (Sandbox Code Playgroud)

"原始"打印协议的问题在于无法从打印机返回状态.

因此,我最近阅读了有关IPPLDR的信息,我们可以使用它从打印机获取状态.

我试图找到一种方法来使用android实现它们但没有成功.我已经完成了这个答案,但没有找到我的解决方案.

如果有人可以指导我如何在android中实现IPP或LDR,那将会非常有帮助.

提前致谢!

printing android ipp-protocol

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

如何在android中使用SLF4j获取日志文件

我已经在android中使用slf4j实现了用于创建日志文件的代码,但没有成功。

首先,我按照以下添加了 gradle 依赖项:-

compile 'org.slf4j:slf4j-android:1.6.1-RC1'
compile 'com.github.tony19:logback-android-core:1.0.7-1'
Run Code Online (Sandbox Code Playgroud)

然后按照指南,我在资产文件夹中创建了一个配置文件,命名logback.xml如下:-

<configuration>
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
    <file>/sdcard/testFile.log</file>
    <append>true</append>
    <encoder>
        <pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern>
    </encoder>
</appender>

<root level="DEBUG">
    <appender-ref ref="FILE" />
</root>
Run Code Online (Sandbox Code Playgroud)

最后,我在我的应用程序中添加了一个日志,如下所示:-

Logger logger = LoggerFactory.getLogger(HomeActivity.class);
logger.debug("Testing slf4j", "Hello world");
Run Code Online (Sandbox Code Playgroud)

现在我运行了这个程序并期待 SDcard 中有一个日志文件,但不幸的是没有看到这样的文件。如果我遗漏了什么,请告诉我。如果有人在android应用程序中做到了,请帮助我。

谢谢。

java logging android logback slf4j

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

AutoFocus next TextInput onChangeText 崩溃

我想用 6 个 TextInput 创建一个 OTP 输入屏幕。当我键入前一个 TextInput 的值时,我希望 TextInput 自动聚焦到下一个。在此处输入图片说明

我遵循了以下问题中给出的解决方案

但是我遇到了一个异常,TypeError: null is not an object(evaluating 'textInputToFocus.current.focus')所以基本上我的变量 textInputToFocus 在下面的代码中为空,我不知道为什么?

import React, { Component } from 'react';
import {
  StyleSheet,
  View,
  Text,
} from 'react-native';
import { PasscodeTextInput } from '../Common/PasscodeTextInput';
import Button from 'react-native-button';

type Props = {}

export default class EnterOTP extends React.Component {

  constructor(props) {
      super(props)
      this.state = {
          passcode1: "",
          passcode2: "",
          passcode3: "",
          passcode4: "",
          passcode5: "",
          passcode6: "", …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs react-native

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

okhttp: IllegalArgumentException: 意外的字符 0xea

我使用 okhttp 从我的 Android 代码发送拉丁字符作为 HTTP 标头

\n
Builder builder=new Builder();\nbuilder.url(myURL);\nbuilder.addHeader("Original-Filename", "t\xc3\xaate-\xc3\xa0-t\xc3\xaate.pdf");\n
Run Code Online (Sandbox Code Playgroud)\n

但是,我越来越IllegalArgumentException: Unexpected char 0xea1

\n

我可以从 Postman 或使用HttpsURLConnection. 此外,根据HTTP1.1 文档,该字符是一种例外的标头格式,该字符是例外的标头格式。

\n

那么,为什么okHttp不支持以下字符呢?另外,是否有任何解决方法,无需通过执行 Base64 编码和解码来更改服务器端的代码。

\n

我使用的是 okttp 版本 4.4.0。另外,我已经浏览过https://github.com/square/okhttp/issues/2016另外,在有人重复同样的事情之前,

\n

android http http-headers okhttp

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

比较字节和十六进制

我有一个字节数组,我需要遍历它并根据字节值做一些事情。下面是我的代码。

    for (byte b:byteArray)
    {

        if(b>=(byte)0x00 && b<=(byte)0x1F)
        {
            //do something
        }
        else if(b>=(byte)0x20 && b <=(byte)0xFE)
        {   
             //do something
        }
        else if(b ==(byte)0xFF)
        {
            //do something
        }
    }
Run Code Online (Sandbox Code Playgroud)

我的问题是字节比较没有按照我的预期发生。

假设我的字节数组中的值是{31, -117, 8, 0 , -1},我的代码无法检测其各自范围内的所有负字节值。对于前。-117 应该在0x20和 之间0xFE,但它不会达到任何范围。

我已经按照这个答案来比较字节。我无法弄清楚代码中有什么问题。

提前致谢!

java hex byte

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

获取日期选择器对话框的当前日期

我想在用户点击时获取日期选择器对话框的当前日期,但它不起作用.我的默认日期未更改为当前日期.我的代码中我做错了什么?

            Calendar mcurrentDate = Calendar.getInstance();

            int day   = mcurrentDate.get(Calendar.DAY_OF_MONTH);
            int month = mcurrentDate.get(Calendar.MONTH);
            int year  = mcurrentDate.get(Calendar.YEAR);

            DatePickerDialog dpd;
            dpd = new DatePickerDialog(getActivity(), 0,
                    new DatePickerDialog.OnDateSetListener() {

                        @Override
                        public void onDateSet(DatePicker view, int year,
                                int month, int day) {
                            // TODO Auto-generated method stub
                            dateTxtVu.setText("Date: " + day + "-" + month
                                    + "-" + year);
                            dateStr = day + "-" + month + "-" + year;
                        }

                    }, day, month, year);
            dpd.show();
Run Code Online (Sandbox Code Playgroud)

android datepickerdialog

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