小编use*_*561的帖子

android中的网络发现

我想通过Android手机发现连接到我的Wifi网络的所有设备(主机名,MAC地址和供应商名称).设备上没有运行公共服务.

尝试了以下方法:

  1. Ping子网中的所有IP需要太长时间(inetAddress.isReachable()).
  2. 发送nbstat查询NETBIOs名称的请求在某些设备中有效.其中一些给PortNotOpenException(端口137没有打开).某些其他设备未NETBIOs启用名称服务.
  3. 尝试使用jcifs为Android.能够使用获取主机名

    nbtAddress.getByName(ip)
    
    Run Code Online (Sandbox Code Playgroud)

循环子网中的所有IP地址.此方法提供所有主机名,无论它们是否处于活动状态.

在网络上查找所有ACTIVE设备的最佳方法是什么?像FING这样的应用似乎就是这么做的.

编辑:我试图分析Android FING应用程序如何做到这一点.

  1. 用2个设备连接一个小热点.在FING中开始发现并在wireshark上捕获数据包.发送以下一系列请求(全部广播):

wireshark上的数据包

  1. 在大型wifi网络上开始在FING中发现(65 k设备)捕获Netbios名称服务查询和响应数据包.(单播和有时广播地址)

同时,我尝试在IDE上打印我的Android手机的arp条目.

随着FING应用程序中的发现进展,条目数量不断增加.

发现开始前有5个条目

随着发现的进展,增加到1025个条目.

发现结束后减少到150个条目.

究竟发生了什么?没有ICMP请求.可以在Android应用程序中发送ARPRequests吗?请帮忙.

android netbios discovery

10
推荐指数
0
解决办法
2873
查看次数

减少在android中使用PdfDocument创建的Pdf的大小

我想在我的应用程序中生成一个 PDF 报告并共享它。我想避免使用 3rd 方库。尝试使用 PdfDocument。

https://developer.android.com/reference/android/graphics/pdf/PdfDocument.html

工作正常,但 pdf 文档的大小很大。对于包含 5 个图像的文件,它高达 32MB。尝试只添加一小段文本(只有文本,没有图像)。大小仍然是40KB。

尝试降低在 PdfDocument 的构造函数中传递的 PrintAttributes 中的分辨率。

PrintAttributes printAttrs = new PrintAttributes.Builder().
            setColorMode(PrintAttributes.COLOR_MODE_COLOR).
            setMediaSize(PrintAttributes.MediaSize.NA_LETTER).
            setResolution(new Resolution("RId", PRINT_SERVICE, 50, 50)).
            setMinMargins(Margins.NO_MARGINS).
            build();
Run Code Online (Sandbox Code Playgroud)

你没有工作。有什么方法可以减小PDF文档的大小,如果没有,是否建议尝试其他格式?(如单词等)

pdf android

5
推荐指数
0
解决办法
1630
查看次数

在项目中检索项目的父项时出错:'Theme.AppCompat.Light'

我正在尝试在我的项目中使用ActionBarActivity.我已按照https://developer.android.com/tools/support-library/setup.html#中的说明将android-support-v7-appcompat导入工作区

我可以将appcompat项目添加为当前项目(eclipse)中的库.

得到绿色刻度线

现在,当我使用以下import语句时没有错误.

import android.support.v7.app.ActionBarActivity;
Run Code Online (Sandbox Code Playgroud)

从ActionBarActivity扩展我的类时没有错误.

public class MyClass extends  ActionBarActivity implements ActionBarListener  {....} 
Run Code Online (Sandbox Code Playgroud)

但是,我在使用AppCompat样式时遇到错误.

在清单中,

<activity
        android:name=".Activity1"
        android:label="@string/app_name"
        android:screenOrientation="portrait" 
        android:theme="@style/AppTheme"
        >
        ....

    </activity>
Run Code Online (Sandbox Code Playgroud)

在styles.xml中,

<style name="AppTheme" parent="AppBaseTheme">
    <!-- All customizations that are NOT specific to a particular API-level can go here. -->

</style>


<style name="AppBaseTheme" parent="Theme.AppCompat.Light">
    <!-- API 11 theme customizations can go here. -->
</style>
Run Code Online (Sandbox Code Playgroud)

在使用parent ="Theme.AppCompat.Light"时,我在styles.xml中收到以下错误:**错误:检索项目的父项时出错:找不到与给定名称"Theme.AppCompat.Light"匹配的资源.**

为什么我无法从appcompat支持库访问资源.

Ps:我没用过 android:showAsAction="never"

我的应用程序项目和appcompat都在同一个文件夹中(我将它们都复制到当前工作区).

eclipse android android-theme android-support-library android-actionbaractivity

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