Articles of android 7.0 nougat

android N中的作业调度程序,间隔少于15分钟

我的问题的一部分,如何在“牛轧糖”中以不到15分钟的间隔建立一份工作,在他的答案中被“暴风雪”回答: Job Scheduler未在Android N上运行 他解释了这个问题并建议使用以下解决方法: JobInfo jobInfo; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { jobInfo = new JobInfo.Builder(JOB_ID, serviceName) .setMinimumLatency(REFRESH_INTERVAL) .setExtras(bundle).build(); } else { jobInfo = new JobInfo.Builder(JOB_ID, serviceName) .setPeriodic(REFRESH_INTERVAL) .setExtras(bundle).build(); } 但是,使用建议 .setMinimumLatency(REFRESH_INTERVAL) 刚开始工作一次; 但是如何在Android牛轧糖设备(不使用处理程序或报警管理器)上定期约30秒?

Android语音识别API在Android 7 Nougat中不起作用

我使用android.speech.SpeechRecognizer API进行语音。 我在Android 4-5中工作得很好, 在Android 6中它现在有一堆错误,比如麦克风打开时发出的响铃被检测为语音,所以它存在(并且当它重新启动时无限循环,因为检测到语音,我们有一个黑客解决方法,为此在播放铃声之前将音量设置为0 …) 在Android 6中,演讲也会在5秒后死亡,没有任何错误或任何内容。 我们有另一个黑客解决方法,它可以在5秒内检测到没有活动并重新启动它… 现在在Android 7中,语音识别似乎根本不起作用? 我还没有能够调试原因,但有没有人在Android 7中使用语音API时遇到问题? 此外,如果有人知道为什么Android似乎在每个版本的语音API中添加新的错误而不修复它们,请回复。 这是否应该在Android中支持,或者他们是否希望您使用Google意图?

错误通知:无法展开RemoteViews:StatusBarNotification。 在Android Nougat上

我使用OneSignal SDK来显示通知。 我是在OneSignalPushService.java 。 OneSignalPushService.java: public class OneSignalPushService extends NotificationExtenderService { @Override protected boolean onNotificationProcessing(OSNotificationReceivedResult notification) { if (!TinyDbWrap.getInstance().isPushEnabled()) { KLog.d(this.getClass().getSimpleName(), “Notification will not displayed”); return true; } OverrideSettings overrideSettings = new OverrideSettings(); overrideSettings.extender = new NotificationCompat.Extender() { @Override public NotificationCompat.Builder extend(NotificationCompat.Builder notificationBuilder) { notificationBuilder.setDefaults(0); notificationBuilder.setContentTitle(getApplicationContext().getResources().getString(R.string.app_name)); boolean is_in_silent_mode = false; /*or true by user’s settings […]

Android Nougat PopupWindow showAsDropDown(…)Gravity无法正常工作

我有这个代码。 PopupWindow popUp = new PopupWindow(); popUp.setFocusable(true); popUp.setOutsideTouchable(true); popUp.setWidth(ViewGroup.LayoutParams.MATCH_PARENT); popUp.setHeight(600); popUp.setContentView(anchorView); popUp.showAsDropDown(anchorView); popUp.update(); 它完美适用于Android版<Android Nougat。 但在Android Nougat中,弹出窗口显示在屏幕顶部而不是相对于锚点视图。

Galaxy S7牛轧糖全图标

我想问一下如何在Android Nougat上运行的Galaxy S7上更改我的应用程序的应用程序图标(参见附页截图)以填充整个图标空间。 有没有办法做到这一点? 编辑:我认为这是因为这些应用程序有方形图标,我的是循环。 有没有办法让它成为Galaxy S7 Nougat设备和所有其他设备的正方形?

Genymotion谷歌Nexus 6P 7.0.0与Open_Gapps arm 7.0.0

使用Genymotion 2.8.0 ,我安装了具有API级别24的Google Nexus 6P 7.0.0设备。启动设备后,我已经刷新了ARM虚拟转换器并重新启动了设备。 然后,我从http://opengapps.org/?download=true&arch=arm64&api=7.0&variant=pico下载了open_gapps,用于Playstore和其他应用程序的安装。 通过将open_gapps zip文件拖放到设备中,它将被复制到SDcard下载文件夹而不是安装谷歌应用程序。 请有人建议我哪里出错了。 提前致谢。

当app被杀/在后台时,检测Android 7及更高版本中的连接变化

问题: 所以问题是我有一个应用程序,当连接WiFi(连接的SSID和其他信息)或断开连接(通过移动网络)时,它会向我们的后端发送请求。 但是,随着Android 7 / N及更高版本的更改,CONNECTIVITY_CHANGE和CONNECTIVITY_ACTION不再在后台运行。 现在大多数情况下人们滥用这个广播,因此我完全理解为什么要做出改变。 但是,我不知道如何在当前状态下解决这个问题。 现在我不是一个Android开发人员(这是一个Cordova插件),所以我指望你们! 预期行为:即使应用程序被杀/在后台,每当WiFi切换连接时,应用程序都会被唤醒并发送请求。 当前行为:应用程序仅在应用程序位于前台时发送请求。 到目前为止尝试过:到目前为止,我已经将隐含的意图从清单中移动到侦听CONNECTIVITY_ACTION,并在应用程序的主要部分(插件)中手动注册它。 这使得它只要应用程序在内存中就可以工作,但不能在冷启动或实际背景下工作 已经看过:大多数答案谈论使用预定的工作来代替丢失的广播。 我看到这是如何工作的,例如,重试下载或类似,但不适用于我的情况(但如果我错了请纠正我)。 以下是我已经看过的SOpost: 当应用程序处于前台时,检测Android 7.0 Nougat上的连接更改 不推荐使用ConnectivityManager.CONNECTIVITY_ACTION 使用JobScheduler检测连接更改 Android O – 检测后台连接的变化

如何利用NotificationListener使用Android Nougat的直接回复function?

我的应用程序使用NotificationListener来读取来自各种第三方应用程序的消息,例如WhatsApp。 到目前为止,如果只有一个聊天未读,我能够发送回复,代码如下。 但是,在使用WhatsApp的情况下, getNotification().actions在未读取两个以上聊天时返回null对象,因为消息捆绑在一起。 正如您在下面的图片中看到的,如果通知被扩展,还有一个选项可以发送直接回复,因此我确信可以使用它,我认为像PushBullet这样的应用程序正在使用此方法。 我怎么能访问该通知的RemoteInput? public static ReplyIntentSender sendReply(StatusBarNotification statusBarNotification, String name) { Notification.Action actions[] = statusBarNotification.getNotification().actions; for (Notification.Action act : actions) { if (act != null && act.getRemoteInputs() != null) { if (act.title.toString().contains(name)) { if (act.getRemoteInputs() != null) return new ReplyIntentSender(act); } } } return null; } public static class ReplyIntentSender { […] […]

Android N没有发送android.net.conn.CONNECTIVITY_CHANGE广播?

我在沙盒Android N应用程序中定义了一个接收器: 这很简单: public class NetworkReceiver extends BroadcastReceiver { private static final String TAG = NetworkReceiver.class.getName(); @Override public void onReceive(Context context, Intent intent) { Log.i(TAG, “Received Network Change event.”); } } 如果在我的build.gradle文件中我的targetSdkVersion是23,那么这个接收器工作正常。但是,如果我将targetSdkVersion设置为24,接收器永远不会收到任何东西。 事实上,如果我在我的接收器中放置一个调试断点,Android Studio会给我一个视觉指示,看起来该类甚至从未加载到内存中。 我是否错过了Android N文档中非常基本的内容? 有没有新的方法来检测连接变化事件?

IllegalArgumentException:列’_data’不存在

在Nougat中,此function无效。 String path = getRealPathFromURI(this, getIntent().getParcelableExtra(Intent.EXTRA_STREAM)); public String getRealPathFromURI(Context context, Uri contentUri) { Cursor cursor = null; try { String[] proj = {MediaStore.Images.Media.DATA}; cursor = context.getContentResolver().query(contentUri, proj, null, null, null); if (cursor == null) return contentUri.getPath(); int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); cursor.moveToFirst(); return cursor.getString(column_index); } finally { if (cursor != null) { cursor.close(); } } } […]