Articles of java的

为什么HttpUrlConnection在移动数据连接上抛出SSLException?

当使用Android的HttpUrlConnection库发出HTTPS请求时,我有时会看到抛出以下exception: javax.net.ssl.SSLException: SSL handshake aborted: ssl=0x5c1b18a0: I/O error during system call, Connection reset by peer at org.apache.harmony.xnet.provider.jsse.NativeCrypto.SSL_do_handshake(Native Method) at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:395) … 在深入研究这个问题之后,我已经了解到了这一点 在wifi上一切正常 仅当设备处于移动数据连接时才会抛出exception 在首先通过wifi进行HTTPS之后,通过移动数据进行连接往往会在一段时间内正常工作 问题似乎发生在少数特定的移动运营商身上 可能会发生什么? 某些移动运营商是否会干扰HTTPS流量?

在Android上运行Java字节码 – 在DalvikVM上运行Sun JVM

由于Java实现( OpenJDK )和Android的虚拟机DalvikVM都是开源的,因此必须能够在Google的DalvikVM上实现Sun的JavaVM。 这样就可以在android上运行基于JVM的应用程序和语言( Clojure, Jython )开箱即用。 是否正在不断努力生成Sun JVM的这种实现?

合并Realm对象和Gson对象

我的目标是将使用GSON实例化的对象持久保存到数据库中 。 我的问题如下: 我可以用GSON实例化一个对象,所以GSON会处理所有的属性,但是它不会被持久化到db 我可以用Realm实例化一个对象,但是我必须填写属性的所有setter。 在我的oncreate中,这两个方法的部分相同 //delete previous realm file Realm.deleteRealmFile(this); //gson instance Gson gson = new Gson(); //realm instance realm = Realm.getInstance(this); **我class的名字是Vacature ** 信息:我知道以下代码需要在里面: realm.beginTransaction(); // code here realm.commitTransaction(); 选项1: //get class with gson Vacature vacatureGson = gson.fromJson(jsonString, Vacature.class); 这不起作用,因为您必须使用实例化一个领域对象 Class instance = realm.createObject(Class.class); // Create a new object 选项2: //get instance with […]

Android API,用于检测内置摄像头和麦克风的新媒体

Android API中是否有任何优雅的方法可以在将新媒体写入设备时检测新媒体? 我主要对相机拍摄的照片,相机拍摄的video和麦克风录制的音频感兴趣。 我目前的想法是定期扫描每个媒体内容提供商并根据上次扫描时间进行过滤。 我只是想知道是否有一些服务可以挂钩以获得实时通知。

拖放在`ListView`中

我试图在android(Ice Cream Sandwich)中的ListView中实现拖放。 因此,当拖动的对象到达ListView的边缘时,我在相关方向上滚动ListView 。 问题是,当我们滚动时,有时适配器会根据需要创建新的View ,并且这些“新” View之前没有收到ACTION_DRAG_STARTED事件,因此不会收到DragEvent更新。 有什么方法可以将事件发送到这些视图吗?

Java:在匿名内部类中调用外部类方法

最近,我在一个android项目中遇到了一个神秘的问题,我在这里描述。 我以某种方式解决了这个问题,但仍然不知道其背后的确切原因。 假设我想在内部类中调用函数foo()。 问题是,直接调用它之间的区别是什么 foo(); 或者使用外部类实例调用它 OuterClass.this.foo(); 此外,如果有人能查看我与此相关的最后一个问题 ,我会很感激,并告诉我错误发生的原因。 非常感谢。 PS:我在某处读过非静态内部类总是持有外部类的实例。 所以如果我只使用foo(),它将使用该实例调用外部函数?

Android,find代码中的所有地方以请求权限

我正在开发一个Marshmallow设备的应用程序。 源代码不是我编写的,项目本身也很大。 我目前正在使应用程序在需要时请求权限。 问题是:如何在代码中find应该请求权限的所有地方? 我正在使用Android Studio。 编辑 有些人建议将api更改为23,然后运行应用程序并查看崩溃的位置。 问题是应用程序不会在每个地方崩溃。 例如,在没有权限的情况下运行此代码会使应用程序崩溃: TelephonyManager manager = (TelephonyManager) context .getSystemService(Context.TELEPHONY_SERVICE); 虽然这个只返回一个空数组,而不是崩溃。 final String[] SELF_PROJECTION = new String[]{ ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,}; Cursor cursor = context.getContentResolver() .query(ContactsContract.Profile.CONTENT_URI, SELF_PROJECTION, null, null, null); 此外,Android Lint不会显示这些地方。 我不确定它是否应该。

域名的包名称以.do结尾

构建应用程序时的约定认为包名称应以一个反向域字符串开头,例如com.google.MySampleApp。 但是,我们公司在.do域注册,不能用作包名(!),因为“do”是Java中的保留关键字。 人们通常如何处理这个问题? 特别是Google Play商店是否有“官方”标准? 当然,我们不能成为第一家在多米尼加共和国创建Android应用程序域名的公司……?

致命exception:ZoomTableManager

我遇到了一个奇怪的崩溃,我在Google上找不到任何相关内容。 搜索ZoomTableManager根本不返回任何结果。 E/AndroidRuntime﹕ FATAL EXCEPTION: ZoomTableManager Process: com.xxx.yyy, PID: 22129 java.lang.IllegalMonitorStateException: object not locked by thread before notify() at java.lang.Object.notifyAll(Native Method) at com.google.maps.api.android.lib6.gmm6.mka(Unknown Source) at com.google.maps.api.android.lib6.gmm6.mlrun(Unknown Source)

刷新片段内的视图

我搜索了很多看起来像这个问题的问题,但是没有find我的答案。 我有一个活动,通过操作栏可以访问3个选项卡。 我通过添加3个片段来实现这一点,这些片段会扩展我扩展视图类的自定义视图。 在数据库更改的那一刻,我尝试通过调用invalidate()/ postinvalidate()刷新我的选项卡中的视图,但这不起作用。 调用片段的onCreateView就像我考虑的其他选项一样。 然而,当我转到另一个选项卡然后返回时,已经进行了更改,并且我的视图会按原样更新。 如何模拟更改为另一个选项卡时发生的相同事情? 会发生什么 我试图查看Fragment生命周期(试图调用onCreateView())来解决它,但它只是不想刷新/重绘它应该。 正确加载数据,因为当我更改为另一个选项卡时数据会更改。 我删除了一些代码,因为它不再相关。 我实现了Cursorloaders而不是我自己的Observer模式来通知更改。 这是我现在的主要活动。 问题是,如果我想重绘这些片段中的视图,我现在应该怎么做。 如果我应用fragmentObject.getView()。invalidate()它不起作用。 我遇到了和以前一样的问题,但现在我的Observer通知加载器正确实现了数据库中的更改。 public class ArchitectureActivity extends Activity implements LoaderManager.LoaderCallbacks { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ActionBar actionbar = getActionBar(); actionbar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); ActionBar.Tab EditTab = actionbar.newTab().setText(“Edit”); ActionBar.Tab VisualizeTab = actionbar.newTab().setText(“Visualize”); ActionBar.Tab AnalyseTab = actionbar.newTab().setText(“Analyse”); Fragment editFragment = new EditFragment(); […]