Articles of android n

我们如何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软件包,但只显示“部分安装”。 我怎样才能解决这个问题?

哪些是新的Android N语言?

我正在阅读新的Android N预览的更改日志。 有关locales的一些有趣的事情: 除了支持多语言环境,Android N还扩展了用户可用的语言范围。 它提供了超过25种变体,每种变体都用于英语,西class牙语,法语和阿拉伯语等常用语言。 它还增加了对100多种新语言的部分支持。 来源: https : //developer.android.com/preview/api-overview.html#multi-locale_languages 你们是否find了这100种新语言的列表?

使用Android中的JobSchedulers检测networking状态更改

使用Android N,您无法为CONNECTIVITY_CHANGE意图静态注册广播接收器。 从http://developer.android.com/preview/features/background-optimization.html#connectivity-action Google文档build议使用Job Scheduler来执行此任务。 在Android中使用Job Schedulers可以检测networking状态变化(LTE到wifi),反之亦然?

Android N无法在应用程序结算AIDL中编译

我只是试图用Android Studio 2.1 Preview 1中的新预览SDK 24 Android N编译我的应用程序。 我在应用程序中的应用程序结算。 当试图构build应用程序时,我得到以下exception aidl.exe E 6416 3312 io_delegate.cpp:102] Error while creating directories: Invalid argument Error:Execution failed for task ':app:compileDebugAidl'. > java.lang.RuntimeException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Users\Gebruiker\AppData\Local\Android\Sdk\build-tools\24.0.0-preview\aidl.exe'' finished with non-zero exit value 1 我已经尝试使用最新的IInAppBillingService.aidl,但我仍然得到相同的错误。 当我删除I​​InAppBillingService.aidl文件项目编译罚款。 这是我的构buildgradle的一部分 compileSdkVersion 'android-N' buildToolsVersion "24.0.0 rc1" defaultConfig { applicationId "xxx.myapp" minSdkVersion 14 targetSdkVersion 'N' […]

在Android N多窗口模式下按下主页button时,未调用Activity onStop()

我正试图让我们的video应用程序支持Android N多窗口模式。 我发现活动生命周期在多窗口模式下变得混乱。 这种现象是当我们的应用程序在屏幕上的整个屏幕纵向布局,然后我点击主页button,上面的应用程序onPause()调用,但onStop()没有调用。 根据谷歌指南https://developer.android.com/guide/topics/ui/multi-window.html#lifecycle ,video应用程序应暂停在onStop()callback,而不是onPause()callbackvideo播放。 在这种情况下,主页button被按下,活动变为背景,对用户不可见,我们的应用程序应该暂停video播放,但我们不能得到onStop()callback。 同时,活动不会触发onMultiWindowChanged()callback,这意味着活动仍然处于多窗口模式,尽pipe它在后台。 在这种情况下, isInMultiWindowMode()将返回true 。 当应用程序在左侧屏幕中,整个屏幕处于横向时,将发生同样的问题。 我已经search了这个问题,并发现有人有alreay发布谷歌,但没有在Android Nougat发布处理。 https://code.google.com/p/android/issues/detail?id=215650&can=1&q=multi%20window%20onstop&colspec=ID%20Status%20Priority%20Owner%20Summary%20Stars%20Reporter%20Opened 那么,在这种情况下,什么时候该暂停我们的video播放呢? 如果我们在onPause()callback中暂停video,但在多窗口模式下用户可以看到该活动。 如果我们不这样做,在这种情况下,我们无法获得onStop()callback。 有这种情况下的一些适当的解决方法?