小编Ser*_*m's的帖子

在Android中获得WiFi信号强度

我可以使用以下代码获得以dBm为单位的WiFi信号电平.

for (ScanResult result : wifiScanResultList) {
    int signalLevel = result.level;
}
Run Code Online (Sandbox Code Playgroud)

它给出了负面价值.当我们看到默认的系统WiFi设置并点击连接的WiFi网络时,它会给出"好"或"坏"作为信号强度.我们可以将这些负值过滤为"良好"信号强度或"差"信号强度的范围是多少?

android android-wifi

45
推荐指数
5
解决办法
6万
查看次数

我应该在发布之前从我的代码中删除e.printStackTrace()

我正在阅读Android发布文档,他们说要从我的代码中删除所有日志调用.我e.printStackTrace()在我的代码中有一些调用,可以打印为我程序正常运行的一部分(即,如果文件还不存在).

我还应该删除这些电话吗?

logging production android exception

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

只有部分用户报告"未找到资源"错误.这有意义吗?

我看到针对我发布的Android应用程序的Crittercism(崩溃报告服务)出现了一些错误.跟踪如下:

0   java.io.IOException: Resource not found: "org/joda/time/tz/data/ZoneInfoMap" ClassLoader: dalvik.system.PathClassLoader@45908320
1    at org.joda.time.tz.ZoneInfoProvider.openResource(ZoneInfoProvider.java:211)
2    at org.joda.time.tz.ZoneInfoProvider.<init>(ZoneInfoProvider.java:123)
3    at org.joda.time.tz.ZoneInfoProvider.<init>(ZoneInfoProvider.java:82)
4    at org.joda.time.DateTimeZone.getDefaultProvider(DateTimeZone.java:462)
5    at org.joda.time.DateTimeZone.setProvider0(DateTimeZone.java:416)
6    at org.joda.time.DateTimeZone.<clinit>(DateTimeZone.java:115)
7    at org.joda.time.chrono.GregorianChronology.<clinit>(GregorianChronology.java:71)
8    at org.joda.time.chrono.ISOChronology.<clinit>(ISOChronology.java:66)
9    at org.joda.time.base.BaseDateTime.<init>(BaseDateTime.java:61)
10   at org.joda.time.DateTime.<init>(DateTime.java:155)
Run Code Online (Sandbox Code Playgroud)

搜索显示这通常是一个编译问题(通常是Joda时间库没有添加到构建路径或其他东西),但那么为什么只有大约4个用户看到这个错误?

我唯一的猜测是有人试图反编译应用程序盗版它(它是一个相当受欢迎的付费应用程序),并在错误地重新编译时看到这个错误.在那种情况下,我很高兴他们看到错误,我不需要担心这一点.

另一个奇怪的事情是导致问题的代码被try/catch包围,它似乎没有抓住它:

try {
    DateTime dt = new DateTime();
    DateTimeFormatter fmt = ISODateTimeFormat.dateTime();
    return fmt.print(dt);
} catch (Exception e) {
    //Report issue to Analytics service
} 
Run Code Online (Sandbox Code Playgroud)

对我而言,这个错误似乎更不可能出现在Crittercism上,因为它应该被抓住了.有谁能解释一下?

java android jodatime crittercism

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

在Fragment类中显示ProgressDialog

我想ProgressDialogFragment课堂上展示一个.以下代码仅适用于Activity类,但不适用于Fragment.有人可以帮我这个,为什么这个ProgressDialog实现只是在一个Activity而不是一个Fragment

private class ProcessUpdateProfile extends
        AsyncTask<String, String, JSONObject> {

    private ProgressDialog nDialog;

    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        nDialog = new ProgressDialog(PFragment.this); //Here I get an error: The constructor ProgressDialog(PFragment) is undefined
        nDialog.setMessage("Loading..");
        nDialog.setTitle("Checking Network");
        nDialog.setIndeterminate(false);
        nDialog.setCancelable(true);
        nDialog.show();

    }
}
Run Code Online (Sandbox Code Playgroud)

android progressdialog android-fragments

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

Android 5.0 Lollipop和4.4 KitKat忽略了我的WiFi网络,enableNetwork()没用

我的应用程序直接连接到充当接入点的硬件设备(无法访问互联网).

我无法连接,因为Android 5.0 automaticcaly切换到有效的互联网连接,所以如果我有数据连接(3G,4G,...)或预先配置的网络我无法连接到我的设备,因为它忽略了WiFi .

那么我如何强制Android使用我以编程方式激活的网络?

我只是使用:

wifiManager.enableNetwork(id, true))
Run Code Online (Sandbox Code Playgroud)

id我要连接的设备的网络在哪里.该true参数无用.

使用的建议解决方案ConnectivityManager.requestNetwork()无效.

android connectivity android-wifi android-5.0-lollipop

24
推荐指数
2
解决办法
3272
查看次数

Android:如何检测Back按钮是否会退出应用程序(即这是堆栈中剩余的最后一个活动)?

我想警告用户,如果背压将完成堆栈上的最后一个活动,从而退出应用程序.我想在接下来的几秒钟内弹出一个小吐司并检测到第二次背压,然后才打电话finish().

我已经编写了背压检测编码onBackPressed(),但是我找不到一种明显的方法来查看背堆上剩下多少活动.

谢谢.

android button exit back android-activity

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

尝试在ANDROID资源中使用<!ENTITY并出现错误:"实体已被引用,但未被声明."

我正在按照此解决方案在我的字符串资源文件中使用enetities:

是否可以直接在Android资源XML文件中进行字符串替换?

我在资源树中使用外部文件:/res/raw/entities.dtd,其内容:

<!ENTITY ent_devicename "MyDeviceName">
Run Code Online (Sandbox Code Playgroud)

string.xml资源文件中:

<!DOCTYPE resources [
    <!ENTITY % ent_devicename SYSTEM "../raw/entities.dtd">
    %ent_devicename;
]>

<resources>
    <string name="name">The name is &ent_devicename;</string>
</resources>
Run Code Online (Sandbox Code Playgroud)

但我得到这个错误:

实体"ent_devicename"已被引用,但未被声明.

如您所见,Android Studio可识别外部实体文件:

在此输入图像描述

和实体:

在此输入图像描述

有人能提供一个正确的例子来使事情有效吗?我的意思是一个完全可编译的Android Studio项目,在单独的文件中包含实体声明.

更新 好的,如果你更加关注这个w3schools链接:

https://www.w3schools.com/xml/xml_dtd_entities.asp

你看到了解决方案:

外部entities.dtd文件包含

<!ENTITY ent_devicename "MyDeviceName">
Run Code Online (Sandbox Code Playgroud)

那么新的字符串资源资源:

<?xml version="1.0" encoding="utf-8"?>

    <!DOCTYPE resources [
        <!ENTITY ent_devicename SYSTEM "../raw/entities.dtd">
        ]>

<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="Typos">
    <string name="ent_devicenamxxe2">&ent_devicename;</string>
Run Code Online (Sandbox Code Playgroud)

我改变了<!ENTITY % ent_devicename<!ENTITY ent_devicename(不再%)我删除%ent_devicename;

现在它编译但是生成的APK似乎忽略了实体值(使用空字符串).所以问题没有解决!

让我知道!

xml dtd android-resources android-studio android-gradle-plugin

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

Android Studio 3.1.1更新后,"locate"链接无法打开生成的APK文件夹

更新:问题出现在Android 3.1.1更新之后.

在APK生成过程完成后,Android Studio(Windows操作系统)会提出一个弹出窗口来定位或分析APK.

在此输入图像描述

不幸的是,如果我点击定位,没有任何事情发生.

UPDATE

在APK Generetion对话框中,我指定目标路径,我的电脑上的文件夹:

在此输入图像描述

在某些项目中,我使用gradle line bounche来重命名APK:

android.applicationVariants.all { variant ->
    if (variant.buildType.name == BuilderConstants.RELEASE) {
        variant.outputs.each { output ->
            def padVersionCode = variant.versionCode.toString();
            padVersionCode = padVersionCode.padLeft(5, '0')
            def newApkName = "${output.baseName}_${padVersionCode}-${variant.versionName}"
            newApkName = newApkName + ".apk"
            output.outputFile = new File(output.outputFile.parent, newApkName)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我看到APK已重命名并放置在预期的文件夹中,定位链接是唯一的数据不起作用.

android apk android-studio android-studio-3.1

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

Android库没有将其资源转移到其他项目

我有一个Android项目,我正在尝试进入一个库.我在这段代码上抛出异常:

_buttonStart = (Button) findViewById(R.id.buttonStart);
Run Code Online (Sandbox Code Playgroud)

我得到的例外是:

java.lang.NoSuchFieldError: com.xxx.libraryname.R$id.buttonStart
Run Code Online (Sandbox Code Playgroud)

Android文档似乎明确表示该库应该能够访问这些资源:

"例如,库项目中的源代码可以通过其R类访问自己的资源."

当我查看图书馆时/gen/com.xxx.libraryname/R.java/R/id/,buttonStart就在那里.但是,当我查看主要项目时/gen/com.xxx.libraryname/R.java/R/id,事实并非如此.

我干净了.

resources android

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

Android可点击布局

我有一个线性布局,我设置为clikable + focus,但问题是点击时没有显示焦点.如何才能显示焦点.

继承我的代码

<LinearLayout
  android:id="@+id/linear_tv_layout"
  android:orientation="horizontal"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:layout_weight="1"
  android:clickable="true"
  android:focusable="true"
  android:paddingBottom="7px">
Run Code Online (Sandbox Code Playgroud)

android click event-handling android-layout

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