Tag: java

Java和HTTPS的url连接无需下载证书

此代码连接到HTTPS网站,我假设我没有validation证书。 但为什么我不需要在本地安装证书? 我不应该在本地安装证书并加载该程序或将其下载到封面之后吗? 客户端到远程站点之间的stream量是否仍然在传输中encryption? import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.Reader; import java.net.URL; import java.net.URLConnection; import java.security.cert.X509Certificate; import javax.net.ssl.HostnameVerifier; import javax.net.ssl.HttpsURLConnection; import javax.net.ssl.SSLContext; import javax.net.ssl.SSLSession; import javax.net.ssl.TrustManager; import javax.net.ssl.X509TrustManager; public class TestSSL { public static void main(String[] args) throws Exception { // Create a trust manager that does not validate certificate chains TrustManager[] trustAllCerts = new […]

具有自定义视图的AlertDialog:resize以包装视图的内容

我正在build立一个应用程序中遇到这个问题。 请忽略所有的devise缺陷和缺乏最佳实践方法,这纯粹是为了展示我无法解决的一个例子。 我有DialogFragment ,它使用AlertDialog.Builder.setView() DialogFragment返回一个具有自定义View的基本AlertDialog 。 如果此View具有特定的大小要求,那么如何让Dialog正确调整其大小以显示自定义View中的所有内容? 这是我一直在使用的示例代码: package com.test.test; import android.os.Bundle; import android.app.Activity; import android.app.AlertDialog; import android.app.Dialog; import android.app.DialogFragment; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Paint.Style; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.WindowManager; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.view.ViewGroup.LayoutParams; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.EditText; import android.widget.FrameLayout; import android.widget.LinearLayout; import […]

iText – 将内容添加到现有的PDF文件

我想用iText做以下事情: (1)parsing现有的PDF文件 (2)向其添加一些数据,在文档的现有单页上(如时间戳) (3)写出文件 我似乎无法弄清楚如何与iText做到这一点。 在伪代码中,我会这样做: Document document = reader.read(input); document.add(new Paragraph("my timestamp")); writer.write(document, output); 但由于某种原因,iText的API非常复杂,我无法将其包裹起来。 PdfReader实际上包含文档模型或其他东西(而不是吐出一个文档),并且你需要一个PdfWriter来读取它的页面…呃?

AngularJS HTML5模式 – 直接链接如何在没有服务器特定变化的情况下工作?

注意:这个问题也可以这样写: 如何在Java中支持hashbang-less客户端mvc框架的书签。 我正在转换一个angular度的应用程序,使用hashtags html5mode 。 我已经成功设置 $locationProvider.html5Mode(true); 所有来自login页面(index.html)的链接都可以正常工作。 问题是,如果直接引用部分url,我自然会得到一个404,因为服务器端点定义没有耦合到客户端定义的路由。 因此,如果没有HTML5,我们会获得非SEO友好的hashbangs,但是对于其他目标网页(bootstrapsangular色的页面),我们不能添加书签。 为什么如果首先请求默认login页面(index.html),即htpp://mydomain.com/: 浏览器从服务器请求index.html 服务器返回index.html,浏览器加载angular度框架 URL更改发送到客户端路由器,并加载正确的部分。 为什么它不工作,如果(即)直接从浏览器请求http://mydomain.com/foo : 浏览器从服务器请求mydomain / foo。 资源不存在 服务器返回404 这个故事中缺less的东西,我只是不知道。 这是我能看到的唯一的两个答案 这是devise。 这是应该如何工作? 用户必须始终登陆客户端MVC框架的引导页面(通常是index.html),然后从那里导航。 这是不理想的,因为国家不能保存,没有办法书签…更不用说抓取。 服务器scheme。 这是一个服务器端技巧解决? 例如,在所有的请求中,返回index.html并立即调用具有额外上下文的路由器。 如果是这样,这是违背AngularJS完全客户端的目标,并且看起来像一个黑客攻击。

检测对BluetoothAdapter所做的状态更改?

我有一个应用程序的button,我用来打开和closuresBT。 我在那里有下面的代码; public void buttonFlip(View view) { flipBT(); buttonText(view); } public void buttonText(View view) { Button buttonText = (Button) findViewById(R.id.button1); if (mBluetoothAdapter.isEnabled() || (mBluetoothAdapter.a)) { buttonText.setText(R.string.bluetooth_on); } else { buttonText.setText(R.string.bluetooth_off); } } private void flipBT() { if (mBluetoothAdapter.isEnabled()) { mBluetoothAdapter.disable(); } else { mBluetoothAdapter.enable(); } } 我打电话buttonFlip,翻转BT状态,然后调用ButtonText,它应该更新UI。 然而,我遇到的问题是,BT开启需要几秒钟 – 在这段时间内,BT状态未启用,使我的button说蓝牙closures,即使它将在2秒钟内打开。 我在BluetoothAdapter android文档中find了STATE_CONNECTING常量,但是…我根本不知道如何使用它,作为一个新手和所有。 所以,我有两个问题: 有没有办法将UI元素(如button或图像)dynamic绑定到BT状态,以便当BT状态改变时,button也会改变? 否则,我想要按下button,并获得正确的状态(我想它说BT,即使它只是连接,因为它将在2秒钟)。 […]

Java中用于文本string的64位散列函数是什么?

我在找一个哈希函数: 很好地扫描文本string (例如很less碰撞) 用Java编写,并被广泛使用 奖金:工作在几个领域(而不是我连接他们和应用连接的string散列) 奖金:有一个128位的变种。 奖金:不占用CPU。

方法调用release()exception后无法使用android相机继续

在开发相机应用程序时,我遇到了一个exception,只有当我切换到其他应用程序( onPause()为我的应用程序)时发生的exception。 01-15 17:22:15.017: E/AndroidRuntime(14336): FATAL EXCEPTION: main 01-15 17:22:15.017: E/AndroidRuntime(14336): java.lang.RuntimeException: Method called after release() 01-15 17:22:15.017: E/AndroidRuntime(14336): at android.hardware.Camera.setPreviewDisplay(Native Method) 01-15 17:22:15.017: E/AndroidRuntime(14336): at android.hardware.Camera.setPreviewDisplay(Camera.java:357) 01-15 17:22:15.017: E/AndroidRuntime(14336): at com.sora.cbir.yuki.image.leaf.CameraPreview.surfaceCreated(CameraPreview.java:32) 01-15 17:22:15.017: E/AndroidRuntime(14336): at android.view.SurfaceView.updateWindow(SurfaceView.java:551) 01-15 17:22:15.017: E/AndroidRuntime(14336): at android.view.SurfaceView.onWindowVisibilityChanged(SurfaceView.java:213) 01-15 17:22:15.017: E/AndroidRuntime(14336): at android.view.View.dispatchWindowVisibilityChanged(View.java:4075) 01-15 17:22:15.017: E/AndroidRuntime(14336): at android.view.ViewGroup.dispatchWindowVisibilityChanged(ViewGroup.java:742) 01-15 17:22:15.017: E/AndroidRuntime(14336): […]

如果我在同一个类上同步两个方法,它们可以同时运行吗?

如果我在同一个类上同步两个方法,它们可以同时在同一个对象上运行吗? 例如: class A { public synchronized void methodA() { //method A } public synchronized void methodB() { // method B } } 我知道我不能在两个不同线程的同一个对象上运行两次methodA() 。 methodB()同样的事情。 但是,我可以在methodB()仍在运行时在不同的线程上运行methodB()吗? (同一个对象)

Android工作室 – 无法find目标android-18

我有一个Android Studio 0.2.3的问题。 当我运行我的项目时生成停止并出现消息说: Gradle:执行失败的任务': AppName :compileDebugAidl'。 >未能find目标android-18 虽然我已经安装了Android 4.3(API 18)的SDK平台,我试图重新安装所有的SDK。 我还在系统variables中添加了ANDROID_HOMEvariables。 什么似乎是这个错误的来源?

将date对象转换为日历对象

所以我从表单中得到一个传入对象的date属性: Tue May 24 05:05:16 EDT 2011 我正在写一个简单的帮助器方法将其转换为日历方法,我正在使用下面的代码: public static Calendar DateToCalendar(Date date ) { Calendar cal = null; try { DateFormat formatter = new SimpleDateFormat("yyyyMMdd"); date = (Date)formatter.parse(date.toString()); cal=Calendar.getInstance(); cal.setTime(date); } catch (ParseException e) { System.out.println("Exception :"+e); } return cal; } 要模拟传入的对象,我只是在当前使用的代码中分配值: private Date m_lastActivityDate = new Date(); 然而,一旦方法达到,这是一个空指针。 date = (Date)formatter.parse(date.toString());