Articles of android 7.0 nougat

Android Internet连接检查更好的方法

根据Android开发者网站“ 确定和监控连接状态” ,我们可以检查是否存在活动的Internet连接。 但即使只连接了Wi-Fi而没有互联网可用(它通知有互联网连接),这也无效。 现在我ping一个网站,检查互联网连接是否可用。 而且这种方法需要更多的处理时间。 是否有更好的方法来检查Internet连接,以避免ping地址的时间延迟?

java.lang.SecurityException:不再支持MODE_WORLD_READABLE

例外情况仅发生在Android 7.0 Nougat(模拟器)设备中。 java.lang.SecurityException:不再支持MODE_WORLD_READABLE 我的代码: public void SessionMaintainence(Context context) { this.context = context; preferences = context.getSharedPreferences(PREF_NAME, Context.MODE_WORLD_READABLE); editor = preferences.edit(); editor.commit(); } logcat的: > E/AndroidRuntime: FATAL EXCEPTION: main > Process: burpp.av.feedback, PID: 2796 > java.lang.RuntimeException: Unable to create application > burpp.av.feedback.FeedbackApplication: java.lang.SecurityException: > MODE_WORLD_READABLE no longer supported > at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5364) > at android.app.ActivityThread.-wrap2(ActivityThread.java) > at […]

列出存储在用户凭据中的证书

在Android 7 Nougat中,用户安装的证书转到“用户凭据”而不是“可信凭证”(由系统凭据和用户凭证组成)。 我过去通过以下方式访问“受信任的凭据”: KeyStore keystore = KeyStore.getInstance(“AndroidCAStore”); 通过上面的代码,我可以访问系统和用户可信凭证。 但现在,在Android 7中,用户安装的证书将转到Settings –> Security –> User credentials下名为“用户凭据”的单独位置。 我的问题是如何以编程方式列出Android 7中User credentials内的User credentials ?

NestedScrollView在Nougat上阻止bug(API 25)

我在Nexus 5x(7.1.2)和Google Pixel(7.1.1)上使用NestedScrollView时遇到了一个奇怪的问题。 在其他OS版本上它可以正常工作。 举起animation有时会在举起手指后立即停止。 它停滞不前,接下来的几次飞行也可能停止。 为了重现它,你需要上下几次投掷。 在日志中,这些flings在速度,方向等方面看起来几乎相同,所以我找不到这个bug的真正原因。 NestedScrollView也不一定需要在CoordinatorLayout ,它也可以没有NestedScrollingChild 。 例如,使用以下NestedScrollView子项之一可以重现此错误: 1)使用TextViews填充LinearLayout 2) WebView 3)使用RecyclerViews填充LinearLayout 。 我知道CoordinatorLayout RecyclerView和Behaviors可能存在的问题,但它没有关系。 所以请不要提及任何 recyclerView.getLayoutManager().setAutoMeasureEnabled(true); recyclerView.setNestedScrollingEnabled(false); 或类似的东西。 代码示例:

以编程方式接受Nougat中的呼叫

从一年开始,我一直在研究IOT产品,附带的应用程序运行正常。 现在我无法在更高版本的android中以编程方式接受调用。 function对产品非常重要。 任何帮助都非常感谢。 在2016年11月安全补丁更新之前, Runtime.getRunTime.exec(“Command”)工作正常以编程方式接受调用。 Runtime.getRuntime().exec(“input keyevent ” +Integer.toString(KeyEvent.KEYCODE_HEADSETHOOK)); 如何在Nougat版本的android中实现它。 寻找任何types的黑客。 我已经为增强function打开了一个post。 https://code.google.com/p/android/issues/detail?can=2&start=0&num=100&q=&colspec=ID%20Status%20Priority%20Owner%20Summary%20Stars%20Reporter%20Opened&groupby=&sort=&id=231938 注意*如果您中的任何一方遇到同样的问题,请向Android Dev Team请求加入并提供规定以获得用户的运行时权限。 按照上面提到的URL来请求。

Android 7.0和7.1 getApplication()ClassCastException

在Developer Console中,我看到很多像这样的堆栈跟踪崩溃 java.lang.RuntimeException: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2984) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3045) at android.app.ActivityThread.-wrap14(ActivityThread.java:0) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1642) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6776) at java.lang.reflect.Method.invoke(Native Method:0) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410) Caused by: java.lang.ClassCastException: at com.myapp.ui.BaseActivity.getApp(BaseActivity.java:193) at com.myapp.ui.BaseActivity.onCreate(BaseActivity.java:275) at com.myapp.ui.CastActivity.onCreate(CastActivity.java:39) at com.myapp.ui.MainActivity.onCreate(MainActivity.java:268) at android.app.Activity.performCreate(Activity.java:6955) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1126) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2927) BaseActivity的getApp方法是 public App getApp() { return (App) getApplication(); } App类是 public class App extends […]

无法在Android api> = 24上使用java.lang.IllegalArgumentException恢复活动

我的应用程序在运行版本7.1.1和8.0.0设备上发生崩溃,并带有以下堆栈跟踪: Fatal Exception: java.lang.RuntimeException: Unable to resume activity {xxx/xxx.views.activities.HomeActivity}: java.lang.IllegalArgumentException at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3788) at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3828) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2991) at android.app.ActivityThread.-wrap14(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1635) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6692) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1468) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1358) Caused by java.lang.IllegalArgumentException at android.os.Parcel.readException(Parcel.java:1697) at android.os.Parcel.readException(Parcel.java:1646) at android.app.ActivityManagerProxy.isTopOfTask(ActivityManagerNative.java:6600) at android.app.Activity.isTopOfTask(Activity.java:6142) at android.app.Activity.onResume(Activity.java:1331) at android.support.v4.app.FragmentActivity.onResume(FragmentActivity.java:485) at xxx.views.activities.BaseActivity.onResume(BaseActivity.java:50) at xxx.views.activities.HomeActivity.onResume(HomeActivity.java:364) at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1277) at android.app.Activity.performResume(Activity.java:7058) […]

AlertDialog上缺少按钮| Android 7.0(Nexus 5x)

我正在尝试创建一个AlertDialog但按钮没有显示。 只在Android 7.0中看到此问题: final AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle(“This app needs location access”); builder.setMessage(“Please grant location access so this app can detect beacons.”); builder.setPositiveButton(android.R.string.ok, null); builder.setOnDismissListener(new DialogInterface.OnDismissListener() { @Override @TargetApi(Build.VERSION_CODES.M) public void onDismiss(final DialogInterface dialog) { requestPermissions(new String[]{Manifest.permission.ACCESS_COARSE_LOCATION}, PERMISSION_REQUEST_COARSE_LOCATION); } }); builder.show();

在Android 7.0和Samsung设备上使用Dagger 2运行RuntimeException

在我的Google Play控制台上,自从我开始使用Dagger 2以来,我看到了很多崩溃报告,但仅限于Android 7.0,主要是三星设备,一些Huawai和Motorola设备以及一些罕见的Xperia设备: java.lang.RuntimeException: at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2984) at android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:3045) at android.app.ActivityThread.-wrap14 (ActivityThread.java) at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1642) at android.os.Handler.dispatchMessage (Handler.java:102) at android.os.Looper.loop (Looper.java:154) at android.app.ActivityThread.main (ActivityThread.java:6776) at java.lang.reflect.Method.invoke (Method.java) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:1518) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1408) Caused by: java.lang.RuntimeException: at dagger.android.AndroidInjection.inject (AndroidInjection.java:48) at dagger.android.support.DaggerAppCompatActivity.onCreate (DaggerAppCompatActivity.java:43) at com.package.MainActivity.onCreate (MainActivity.java:83) at android.app.Activity.performCreate (Activity.java:6956) at android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1126) at android.app.ActivityThread.performLaunchActivity […]

在Android 7(API级别24)中,我的应用程序不允许静音手机(将铃声模式设置为静音)

我有一个应用程序通过使用AudioManager将手机静音并使用此代码将铃声模式设置为静音: AudioManager audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE); try { audioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT) } catch (Exception e) { e.printStackTrace(); } 这适用于Android 6,但现在使用Android 7,我收到以下错误: System.err: java.lang.SecurityException: Not allowed to change Do Not Disturb state System.err: at android.os.Parcel.readException(Parcel.java:1683) System.err: at android.os.Parcel.readException(Parcel.java:1636) System.err: at android.media.IAudioService$Stub$Proxy.setRingerModeExternal(IAudioService.java:962) System.err: at android.media.AudioManager.setRingerMode(AudioManager.java:1022) System.err: at controllers.SearchResultController.mutePhone(SearchResultController.java:185) 有什么新的权限我需要要求才能使这项工作? 我查看了Android权限列表,但找不到任何相似的内容。