我正在使用console.log()我编写的一些JavaScript,并且错误:console is not defined在Internet Explorer中抛出(在其他浏览器中工作正常).
我已将其替换为:
if (console) console.log("...");
如果console是undefined,我希望条件评估为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
使用以下任何一个示例:http: //developer.android.com/training/volley/request.html
我理解如何处理成功请求的响应,以及如何检测错误并做出反应.
但是,错误可能是(在其他情况下)来自服务器的40x或50x响应,在这种情况下,响应仍然可以包含数据(标题和正文).
但是错误监听器只传递了一个VolleyError对象(如果我没有弄错的话,它是Exception的子类)而不是Response对象.
如何访问错误响应的内容?
我有一个活动开始一些其他活动的结果,所以当结果返回时,活动可能已经或可能没有被销毁和重新创建.
我重写了onSaveInstanceState,以便添加需要保留和恢复的数据.
当活动被销毁并重新创建时,onCreate将传递savedInstanceState包; 而且还调用onRestoreInstanceState()并传递相同的bundle.
那么我应该在哪里放置从包中提取数据的代码并恢复状态?在onCreate或onRestoreInstanceState中?保证后者始终被称为?
是否有可能在不调用onCreate的情况下调用onRestoreInstanceState?(例如,如果活动停止并重新启动但未被销毁和重新创建)?
我用命令生成了一个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) 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位(单精度)浮子具有足够的精度,可以正确存储!
这个问题已被提出,但从未回答过.
我想写一些PHP脚本,将视频上传到我自己的YouTube帐户.我已经注册了应用程序并拥有开发人员密钥,客户密钥和客户密钥.
我不需要允许任何用户将视频上传到自己的帐户,因此我无需完成完整的OAuth流程; 特别是我不需要在任何地方重定向任何人:我只需要我的脚本代表我进行身份验证(而不是代表任何其他人).
我知道我可以使用ClientLogin身份验证,但我在YouTube API文档网站上看到它"不推荐用于新开发",我担心这意味着它的支持将在不久的将来停止.所以我更喜欢使用OAuth.
Twitter API也使用OAuth,它提供了一种简单的方法,使用您可以在应用程序管理页面上找到的访问令牌,使用应用程序所有者自己的帐户进行身份验证.如何为Youtube应用程序获取类似的令牌?
谢谢你.
根据Java参考,Locale.getLanguage()应该返回语言的2字母小写ISO代码(例如en),而getDisplayLanguage()获取可读名称的方法(例如English).
那么Android中的以下代码怎么样:
Locale.getDefault().getLanguage()
Run Code Online (Sandbox Code Playgroud)
返回English或Español代替en和es????
我完全不解......
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?
我知道简短的答案应该是"无处",但是在下面的测试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影响一个如何阅读,分析,解码,编码,并将它们从一个写程序.
我正在编写一个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()必须是第一个声明.这里的问题是为什么像我发布的那样的案例会破坏这些要求(并且在这个问题中得到了令人满意的回答)
android ×4
java ×2
access-token ×1
console ×1
constructor ×1
diff ×1
encoding ×1
google-api ×1
javascript ×1
linux ×1
locale ×1
mysql ×1
oauth ×1
oncreate ×1
patch ×1
single-user ×1
super ×1
ubuntu ×1
undefined ×1
unicode ×1
utf-8 ×1
youtube-api ×1