Articles of android n

我们如何使用Android N网络安全配置获得自签名证书?

我试图测试N Developer Preview的网络安全配置function的所有方面。 我有大部分工作,但我被自签名证书场景困扰。 根据文档 ,Android N应该对PEM或DER文件感到满意,因为它适用于其他证书validation方案。 但是,我不能使用自签名证书,我尝试使用此function会继续运行证书路径validationexception。 为了测试,我使用thin作为服务器,在我的开发机器上运行,可以通过N模拟器访问。 自签名证书适用于我的开发计算机上的浏览器,如果我切换到运行thin sans SSL,应用程序可以很好地到达服务器。 所以,这不是连接问题。 我使用本网站上的说明创建了自签名证书: sudo openssl genrsa -out “/etc/[webserver]/ssl/example.key” 2048 sudo openssl req -new -key “/etc/[webserver]/ssl/example.key” \ -out “/etc/[webserver]/ssl/example.csr” sudo openssl x509 -req -days 365 -in “/etc/[webserver]/ssl/example.csr” \ -signkey “/etc/[webserver]/ssl/example.key” \ -out “/etc/[webserver]/ssl/example.crt” 根据此Stack Overflow回答 , example.crt文件是一个PEM文件。 在其他地方,我看到了创建“组合PEM”文件的说明 。 但是,我尝试了这两个,没有运气。 在网络安全配置方面,我尝试了和 。 后者看起来像: 但是,在任何一种情况下我都会得到validation错误。 作为原始资源,我们究竟应该将PEM或DER文件作为原始资源投入使用?

如何在Android N多窗口模式下确定正确的设备方向?

从多窗口文档 : 多窗口模式下禁用的function 当设备处于多窗口模式时,某些function被禁用或忽略,因为它们对于可能与其他活动或应用共享设备屏幕的活动没有意义。 这些function包括: 某些系统UI自定义选项已禁用; 例如,如果应用程序未以全屏模式运行,则无法隐藏状态栏。 系统忽略对android:screenOrientation属性的更改。 我得到了大多数应用程序,纵向和横向模式之间的区别是没有意义的,但是我正在使用SDK,其中包含用户可以进行任何活动的摄像机视图 – 包括支持多窗口模式的活动。 问题是摄像机视图包含显示摄像机预览的SurfaceView / TextureView,并且为了在所有活动方向上正确显示预览,需要有关正确活动方向的知识,以便可以正确旋转摄像机预览。 问题是我的代码通过检查当前配置方向(纵向或横向)和当前屏幕旋转来计算正确的活动方向。 问题是在多窗口模式下,当前配置方向不反映真实的活动方向。 这会导致相机预览旋转90度,因为Android报告的配置与方向不同。 我目前的解决方法是检查所请求的活动方向并以此为基础,但有两个问题: 请求的活动方向不必反映实际的活动方向(即可能仍未满足请求) 请求的活动方向可以是“后方”,“传感器”,“用户”等,它们不会显示有关当前活动方向的任何信息。 根据文档 ,在多窗口模式下实际上忽略了屏幕方向,因此1.和2.只是不起作用 即使在多窗口配置中,有没有办法可以稳健地计算正确的活动方向? 这是我目前使用的代码(请参阅有问题的部分的注释): protected int calculateHostScreenOrientation() { int hostScreenOrientation = ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED; WindowManager wm = (WindowManager) getContext().getSystemService(Context.WINDOW_SERVICE); int rotation = getDisplayOrientation(wm); boolean activityInPortrait; if ( !isInMultiWindowMode() ) { activityInPortrait = (mConfigurationOrientation == Configuration.ORIENTATION_PORTRAIT); } else […]

Android Api 24找不到来源

我有这个成绩档案: //ext.support_library_version = ‘24.0.0’ android { compileSdkVersion 24 buildToolsVersion ‘24.0.0’ defaultConfig { applicationId “—” minSdkVersion 21 targetSdkVersion 24 versionCode 1 versionName “1.0” } … } 但是当我尝试打开任何与Android相关的类时,它表示我没有api24的来源,即使安装了buildToolsVersion ‘24.0.0’也是如此。 知道为什么吗?

Eclipse – 使用Android 7清空Logcat

我最近将我的Nexus 9平板电脑更新为Android 7 Nougat。 从那时起,Eclipse中的Logcat视图停止显示Logcat消息,视图保持为空。 设备目标也显示为“未知”。 如果我在Eclipse外部启动Logcat(AndroidSDK-> tools-> ddms),它会显示所有消息。 但是,“应用程序”列保持为空。 关于这个主题已经有一些(较旧的)问题在这里,但这里没有一个解决方案适合我。 我尝试了什么: 使用另一个USB端口 将设备聚焦在DDMS透视图中 重启Eclipse 重启设备+电脑 abd kill-server 禁用并重新启用设备上的USB Debuging 重置USB-Debuging授权并再次确认RSA指纹 将USB模式切换为“MTP” Android SDK中每个安装的软件包都是最新的,我使用最新的Eclipse + ADT插件。 我的Galaxy S5 Mini(Android 5.1.1)也能正常运行。 我知道,ADT-Plugin已被弃用,我们应该使用Android Studio。 但是我仍然尽可能长时间地使用Eclipse,所以我正在寻找解决这个问题的方法。 那么有谁知道如何解决这个问题?

我们如何testing直接启动?

根据N Developer Preview文档 ,我们可以通过“设置”>“开发人员选项”>“转换为文件encryption”在Android N上设置Direct Boot支持。 在运行NDP2的Nexus 6上,在NDP2仿真器上也找不到这个选项。 根据同样的文档,我们也可以通过在terminal窗口中运行adb reboot-bootloader和fastboot –wipe-and-use-fbe进行设置。 这个错误报告表明,这也是打破了,第一个选项。 那么,我们如何testing呢? 特别: 有没有人得到上述选项之一,在设备或模拟器上工作? 有没有人尝试过“模拟直接启动模式”( adb shell sm set-emulate-fbe true ),这是否工作? 你是否尝试过在设备或模拟器上? 是否有任何已知的副作用尝试这些东西(例如,你可能会阻止你的设备)?

Html标签处理程序没有在Android N中调用“ul”,“li”

我们的应用程序中有一个自定义的TagHandler ,用于项目符号列表等。 html = "<ul><li>First item</li><li>Second item</li></ul>"; if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) { result = Html.fromHtml(html,Html.FROM_HTML_MODE_LEGACY, null, new ListHTMLTagHandler(density)); } else { //noinspection deprecation result = Html.fromHtml(html, null, new ListHTMLTagHandler(density)); } 我的TagHandler的handleTag()函数是在API-23及以下版本中为ul , li调用的,但在API-24(Android N)中没有调用。

Android N中无法使用SecureRandom提供程序“Crypto”来确定生成密钥

用户可以购买我的应用程序的“专业版”。 当他们这样做,我存储和validation他们的购买如下。 结合用户的UUID和另一个唯一的string。 结果string然后使用静态种子进行encryption。 我用SecureRandom.getInstance("SHA1PRNG", "Crypto")做这个 – 这是问题! 得到的encryptionstring就是“解锁码”。 因此,我总是知道用户期望的唯一解锁码值。 当用户购买“Pro”时,我将“解锁码”存储在数据库中。 通过查看数据库中存储的“解锁代码”是否与基于其唯一信息的预期代码相匹配来查看用户是否具有“专业”。 所以,不是最好的系统,但是对于我不起眼的应用程序来说,所有的东西都被混淆了。 问题是SecureRandom.getInstance("SHA1PRNG", "Crypto")在N上失败,因为不支持“Crypto”。 我了解到,依靠特定的提供商是不好的做法,Crypto不支持N。 哎呀。 所以我有一个问题: 我依靠价值种子对的encryption总是有相同的输出。 Android N不支持我使用的encryption提供程序,所以我不知道如何确保N上的encryption输出与其他设备上的encryption输出相同。 我的问题: 是否可以在我的APK中包含“encryption”,以便它始终可用? 我可以在Android N上encryption一个值 – 种子对时确保相同的输出吗? 我的代码: public static String encrypt(String seed, String cleartext) throws Exception { byte[] rawKey = getRawKey(seed.getBytes(), seed); byte[] result = encrypt(rawKey, cleartext.getBytes()); return toHex(result); // "unlock code" which must […]

Android 8中是否提供Java 8 New Date API?

Android N会支持Java 8date/时间API吗? 正如这Android博客说: http : //android-developers.blogspot.com/2016/03/first-preview-of-android-n-developer.html 改进的Java 8语言支持 – 我们很高兴将Java 8语言function带入Android。 使用Android的Jack编译器,现在可以在Android版本上使用许多stream行的Java 8语言function,包括lambdas等。 新function有助于减less样板代码。 例如,lambdas可以在提供事件监听器时replace匿名内部类。 某些Java 8语言function(如默认和静态方法,stream和function接口)现在也可在N及更高版本上使用。 与Jack一起,我们期待更紧密地跟踪Java语言,同时保持向后兼容性。 它说: 使用Android的Jack编译器,现在可以使用许多stream行的Java 8语言function,包括lambda等等 是的,支持lambdaexpression式。 那么Java 8的新date/时间API呢? 有任何想法吗? 谢谢!

检测Android N版本代码

是否有可能检测到用户是否在运行Android N? 我有一个Nexus 6与Android N Developer Preview。 如果我尝试使用Build.VERSION.SDK_INT获取构build版本,则返回23,这等于Android Marshmallowow。

无法find哈希string“android-24”的目标

在将所有的Google库更改为compileSdkVersion并将compileSdkVersion和targetSdkVersion为24之后,我收到了这个错误。正如您在附加图像中看到的,我安装了所有的Android N软件包,但只显示“部分安装”。 我怎样才能解决这个问题?