小编mat*_*teo的帖子

Internet Explorer:"未定义控制台"错误

我正在使用console.log()我编写的一些JavaScript,并且错误:console is not defined在Internet Explorer中抛出(在其他浏览器中工作正常).

我已将其替换为:

if (console) console.log("...");

如果consoleundefined,我希望条件评估为false.因此,该声明console.log不会被执行,也不应该抛出错误.

相反,console is not defined at character 4抛出了错误:

这是IE漏洞吗?或者"if"条件是否真的非法?这似乎很荒谬,因为如果if (console)是非法的,那么也if (console==undefined)应该是非法的.

你应该如何检查undefined变量?

javascript console internet-explorer undefined internet-explorer-8

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

如何访问Volley中的错误响应内容?

使用以下任何一个示例:http: //developer.android.com/training/volley/request.html

我理解如何处理成功请求的响应,以及如何检测错误并做出反应.

但是,错误可能是(在其他情况下)来自服务器的40x或50x响应,在这种情况下,响应仍然可以包含数据(标题和正文).

但是错误监听器只传递了一个VolleyError对象(如果我没有弄错的话,它是Exception的子类)而不是Response对象.

如何访问错误响应的内容?

android android-volley

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

我应该在onCreate还是onRestoreInstanceState中恢复savedinstancestate?

我有一个活动开始一些其他活动的结果,所以当结果返回时,活动可能已经或可能没有被销毁和重新创建.

我重写了onSaveInstanceState,以便添加需要保留和恢复的数据.

当活动被销毁并重新创建时,onCreate将传递savedInstanceState包; 而且调用onRestoreInstanceState()并传递相同的bundle.

那么我应该在哪里放置从包中提取数据的代码并恢复状态?在onCreate或onRestoreInstanceState中?保证后者始终被称为?

是否有可能在不调用onCreate的情况下调用onRestoreInstanceState?(例如,如果活动停止并重新启动但未被销毁和重新创建)?

android oncreate onrestoreinstancestate

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

补丁:补丁输入中只找到垃圾

我用命令生成了一个diff.txt文件(从〜执行):

diff -r /full/path/to/directory/A /full/path/to/directory/B > diff.txt
Run Code Online (Sandbox Code Playgroud)

生成的diff文件看起来不错.

现在我跑(总是从〜)

patch -p0 <diff.txt
Run Code Online (Sandbox Code Playgroud)

或者我也尝试过:

patch <diff.txt
Run Code Online (Sandbox Code Playgroud)

我希望它将更改应用于/ full/path/to/directory/A中的文件,以便在操作之后它们将与/ full/path/to/directory/B中的文件相同.

但它只说: *补丁输入中只发现垃圾.

我错过了什么?

编辑:这是整个差异文件:

diff /media/DATA/lavoro/eclipse_workspace/ODK Collect/src/net/xxx/collect/android/activities/FormEntryActivity.java /media/DATA/lavoro/xxx/backups/odk src embedded maps/net/xxx/collect/android/activities/FormEntryActivity.java
21a22,27
> 
> import com.google.android.maps.GeoPoint;
> import com.google.android.maps.MapActivity;
> import com.google.android.maps.MapView;
> import com.google.android.maps.MyLocationOverlay;
> 
36a43
> import net.xxx.collect.android.widgets.GeoPointWidget;
50a58,60
> import android.location.Location;
> import android.location.LocationListener;
> import android.location.LocationManager;
86a97
> import java.util.List;
96,97c107,108
< public class FormEntryActivity extends Activity implements AnimationListener, FormLoaderListener,
<         FormSavedListener, AdvanceToNextListener, OnGestureListener {
---
> …
Run Code Online (Sandbox Code Playgroud)

ubuntu diff patch

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

为什么MySQL循环浮动的方式比预期的要多?

UPDATE some_table SET some_float_field=1919.987 WHERE id=123

SELECT * FROM some_table WHERE id=123
Run Code Online (Sandbox Code Playgroud)

其中some_float_field是一个定义为"float"的字段(没有任何特定的大小值).

预期结果值为1919.987; 相反,它被舍入到1919.99

为什么?32位(单精度)浮子具有足够的精度,可以正确存储!

mysql floating-point-precision

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

使用OAuth的Youtube API单用户场景(上传视频)

这个问题已被提出,但从未回答过.

我想写一些PHP脚本,将视频上传到我自己的YouTube帐户.我已经注册了应用程序并拥有开发人员密钥,客户密钥和客户密钥.

我不需要允许任何用户将视频上传到自己的帐户,因此我无需完成完整的OAuth流程; 特别是我不需要在任何地方重定向任何人:我只需要我的脚本代表我进行身份验证(而不是代表任何其他人).

我知道我可以使用ClientLogin身份验证,但我在YouTube API文档网站上看到它"不推荐用于新开发",我担心这意味着它的支持将在不久的将来停止.所以我更喜欢使用OAuth.

Twitter API也使用OAuth,它提供了一种简单的方法,使用您可以在应用程序管理页面上找到的访问令牌,使用应用程序所有者自己的帐户进行身份验证.如何为Youtube应用程序获取类似的令牌?

谢谢你.

oauth youtube-api single-user access-token

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

为什么Android中的Locale.getDefault().getLanguage()返回显示名称而不是语言代码?

根据Java参考,Locale.getLanguage()应该返回语言的2字母小写ISO代码(例如en),而getDisplayLanguage()获取可读名称的方法(例如English).

那么Android中的以下代码怎么样:

Locale.getDefault().getLanguage()
Run Code Online (Sandbox Code Playgroud)

返回EnglishEspañol代替enes????

我完全不解......

java android locale

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

Google Keep如何在保存录音的同时进行语音识别?

Android的SpeechRecognizer显然不允许将您正在进行语音识别的输入记录到音频文件中.也就是说,要么使用MediaRecorder(或AudioRecord)录制语音,要么使用SpeechRecognizer进行语音识别,在这种情况下,音频不会记录到文件中(至少不能录制到一个文件); 但你不能同时做到这两件事.

多次询问如何在Android中同时录制音频和进行语音识别的问题,最流行的"解决方案"是录制一个flac文件并使用Google的非官方语音API,允许你发送一个flac通过POST请求提交文件并获取带有转录的json响应. http://mikepultz.com/2011/03/accessing-google-speech-api-chrome-11/(过时的Android版) https://github.com/katchsvartanian/voiceRecognition/tree/master/VoiceRecognition http:// mikepultz.com/2013/07/google-speech-api-full-duplex-php-version/

这非常有效,但有一个巨大的限制,它不能用于超过大约10-15秒的文件(确切的限制不明确,可能取决于文件大小或可能的单词数量).这使它不适合我的需要.

此外,将音频文件切片为较小的文件不是一种可能的解决方案; 甚至忘记了在正确的位置(不是在一个单词的中间)正确分割文件的困难,对上述web服务api的许多连续请求将随机导致空响应(Google表示每次使用限制为50个请求那天,但像往常一样,他们没有透露明确限制请求突发的实际使用限制的细节.

因此,所有这些似乎表明,在将输入录制到Android中的音频文件的同时获取语音转录是不可能的.

但是,谷歌Keep Android应用就是这么做的.它允许你说话,将你所说的内容翻译成文本,并保存文本和录音(很不清楚它存储在哪里,但你可以重放它).它没有长度限制.

所以问题是:是否有人知道Google如何做到这一点?我会查看源代码,但它似乎不可用,是吗?

我在进行语音识别时嗅探了Google Keep发送和接收的数据包,它肯定不会使用上面提到的语音api.所有流量都是TLS,并且(从外部看)它看起来与使用SpeechRecognizer时非常相似.

那么也许存在将麦克风输入流"分割"(即复制或复用)到两个流中的方式,并将其中一个馈送到SpeechRecognizer,另一个馈送到MediaRecorder?

android speech-recognition google-api audio-recording

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

Linux中存储的文本文件的字符编码在哪里?

我知道简短的答案应该是"无处",但是在下面的测试2中有些东西并不完全相加.

测试1.在Gedit中,我创建了一个只包含字符串"aàbï"的新文件,我选择"另存为",并且有一个选择字符编码的选择器.所以我将其保存为"Unicode(UTF-8)",然后我重复相同的操作,并将其保存为另一个文件"ISO-8859-15".第一个文件大小为7个字节(2个1字节字符,2个2字节字符和文件末尾的LF,如十六进制转储所示).第二个文件大小为5个字节(拉丁编码中的4个1字节字符加上LF).这表明编码不存储在文件中的任何位置.显然,当我在Gedit中打开文件并正确解码时,它必须通过分析内容来弄清楚如何解码它.

测试2.我做的与上面相同,但这次文件的内容只是"abcd",即四个ascii字符.这两个保存的文件具有相同的大小(5个字节)和相同的十六进制转储.看起来两个文件是相同的,难以区分,因此,似乎没有关于编码的信息包含在文件中.

但是,当我在Gedit中再次打开测试2的两个文件时,我转到另存为,选择了保存文件的编码.Gedit可以告诉你一个文件是用UTF-8编码的,另一个文件是用ISO-8859-15编码的,尽管两个文件只包含导致相同字节序列的ascii字符,它们看起来是相同的.那个怎么样?

文件系统中是否有某种元数据?或者只是Gedit有自己的缓存并记住用户在同一台​​计算机上打开(并保存)的文件的用户选择?

PS注意,这个问题即使我提出一个非编程测试的情况下,因为这是如何的文件给定类型的编码与编程相关,whic影响一个如何阅读,分析,解码,编码,并将它们从一个写程序.

linux unicode encoding utf-8

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

对super()的调用必须是构造函数体中的第一个语句

我正在编写一个LoginRequest类的构造函数,它扩展了一个名为JsobObjectRequest的类(来自Android中的Volley框架,但这与问题完全无关)

使用此代码:

 public LoginRequest(String username, String password, Response.Listener<JSONObject> responseListener, Response.ErrorListener errorListener) {
        Boolean hasCredentials=(username!=null && password!=null);
        int method=hasCredentials? Method.POST:Request.Method.GET;
        super(method, API_URL_LOGIN, null, responseListener, errorListener);

        this.username=username;
        this.password=password;

    }
Run Code Online (Sandbox Code Playgroud)

我得到错误:调用super()必须是构造函数体中的第一个语句

相反,这段代码编译得很好:

 public LoginRequest(String username, String password, Response.Listener<JSONObject> responseListener, Response.ErrorListener errorListener) {
        super((username!=null && password!=null)? Method.POST:Request.Method.GET, API_URL_LOGIN, null, responseListener, errorListener);

        this.username=username;
        this.password=password;

    }
Run Code Online (Sandbox Code Playgroud)

但这不是有效的完全相同的事情吗?在这两种情况下,在调用超级构造函数之前,根据传递给子类构造函数的参数值,进行一些简单的计算.为什么编译器不能编译第一个例子,因为它可以编译第二个例子?

call-super-constructor-must-first-statement语句规范是否比它需要的更简单,或者我错过了什么?

编辑:这被错误地标记为重复为什么this()和super()必须是构造函数中的第一个语句?.这个问题更通用,并询问为什么super()必须是第一个声明.这里的问题是为什么像我发布的那样的案例会破坏这些要求(并且在这个问题中得到了令人满意的回答)

java constructor super

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