Articles of android 5.0 lollipop

设备所有者在非根设备(Android L)上,没有NFC,使用adb shell,dpm set-device-owner

这里的最终目的是在’kiosk mod’中设置一个设备。 他们 说你不需要NFC也不需要生根来实现应用程序成为设备所有者 。 我还没有看到这个方法的完整示例,但让我们尝试: adb shell dpm set-device-owner /. 应该这样做…所以我这样做,并得到: java.lang.SecurityException: Neither user 2000 nor current process has android.permission.BIND_DEVICE_ADMIN. 因此,以下代码返回false。 ((DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE)) .isDeviceOwnerApp(getApplicationContext().getPackageName()) 这个STO问题提出了类似的问题,但未指明实际的失败。 清单文件和源代码的其余部分主要来自这个谷歌示例 我试图这样做的设备目前是LG G Pad。

对话框FLAG_DIM_BEHIND在Android 5.x(Lollipop)上不起作用

我使用以下代码调暗DialogFragment的背景: Window window = getDialog().getWindow(); WindowManager.LayoutParams windowParams = window.getAttributes(); windowParams.dimAmount = 0.75f; windowParams.flags |= WindowManager.LayoutParams.FLAG_DIM_BEHIND; window.setAttributes(windowParams); 这适用于Kitkat及以下,但停止在棒棒糖上工作。 我怀疑它与我的Activity使用的样式Theme.AppCompat.Light.DarkActionBar这一事实有关,它使用5.x上的Material Theme,而该主题中的某些内容阻止了DIM标志的工作。 我试着弄乱各种主题旗帜,但到目前为止无济于事。

MediaStyle通知未响应RemoteControl事件。

我们正在将正在进行的播放通知迁移到Lollipop中引入的MediaStyle通知。 RemoteControlClient似乎已被弃用,MediaStyle通知不处理媒体按钮事件(例如通过耳机远程暂停/播放)。 有没有人得到这项工作? MediaSessionCallback中没有任何事件被调用。 以下是媒体会话的初始化方式 mSession = new MediaSessionCompat(this, TAG); mSession.setCallback(new MediaSessionCallback()); mSession.setFlags(MediaSessionCompat.FLAG_HANDLES_MEDIA_BUTTONS | MediaSessionCompat.FLAG_HANDLES_TRANSPORT_CONTROLS); mSession.setPlaybackToLocal(AudioManager.STREAM_MUSIC); mSession.setActive(true); 以下是设置元数据的方式 MediaMetadataCompat.Builder metadataBuilder = new MediaMetadataCompat.Builder(); metadataBuilder .putLong(MediaMetadata.METADATA_KEY_DURATION, clip.getDuration()) .putString(MediaMetadata.METADATA_KEY_MEDIA_ID, clip.getClipId()) .putString(MediaMetadata.METADATA_KEY_TITLE, clip.getTitle()) .putString(MediaMetadata.METADATA_KEY_ARTIST, clip.getSourceName()) .putString(MediaMetadata.METADATA_KEY_ALBUM_ART_URI, clip.getImageUrl()) .putLong(MediaMetadata.METADATA_KEY_DURATION, clip.getDuration()); mSession.setMetadata(metadataBuilder.build()); 最后,通知代码: MediaSession mediaSession = (MediaSession) session.getMediaSession(); Notification.Builder builder = new Notification.Builder(c) .setDefaults(0) .setSmallIcon(R.drawable.ic_notif) .setVisibility(NotificationCompat.VISIBILITY_PUBLIC) .setContentTitle(clip.getTitle()) .setContentText(clip.getSourceName()) .setProgress((int)duration, (int)progress, […]

棒棒糖上的微调器发生故障

我的Android Project Build Target是5.1.1 API 22 这个应用程序似乎适用于除Lollipop之外的每个操作系统版本。 Lollipop重新调整某些活动的高度(否定可滚动布局)以及破坏微调器。 单击微调器上的特定位置将在应用程序中输入不同的位置。 我不知道为什么,我不知道如何解决这个问题。 在某些情况下,即使您单击微调器上的按钮,它也会在微调器上注册最底部的可见按钮。 对于一些微调器,它将不允许用户滚动。 我的一个故障微调器代码是这样的: ArrayAdapteradapterl4 = new ArrayAdapter(this, android.R.layout.simple_spinner_item,hbmlevel){ public boolean isEnabled(int position){ displayData(position); return true; } }; selecthbm = (Spinner)findViewById(R.id.selecthbmlvl); adapterl4.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); selecthbm.setAdapter(adapterl4); selecthbm.setOnItemSelectedListener(this); 我也尝试使用全局variablesdisplayData函数,但我仍然得到相同的结果。 该应用程序是一个非常基本的应用程序,您可以在此处下载并在Java Compiler Compliance级别1.7上运行 我的xml的开头看起来像这样: displayData: public void displayData(int pos){ herolvlTV.setText(hbmherolvl[pos]); hbmshardTV.setText(getResources().getString(R.string.shards)+” ” +String.valueOf(hbmshards[pos])); hbmexpTV.setText(getResources().getString(R.string.maxexp)+” ” +String.valueOf(hbmmaxexp[pos])); }

打开SoftKeyboard时,RecyclerView会隐藏Actionbar

我有以下布局 而SendMessageLayout只是一个包含EditText和Button的布局。 在旧的实现中,我使用普通的旧ListView,所以当我请求焦点编辑文本时,键盘会出现,列表视图没有移动,第一个项目是可见的。 但是随着RecyclerView的推出,一切都被推高了,不仅顶级项目不在屏幕之外,而且整个布局都在ActionBar之上。 这是它的样子……

我应该关心Lollipop中的主线程和UI线程之间的区别吗?

在棒棒糖之前,生活很简单。 你有一个main thread – 有时候也称为UI thread – 所有的GUI工作都已完成(你在所有情况下都避免了长时间运行以避免任何types的打嗝),你有你的background threads这个长期运行的东西。 现在在Lollipop和更高版本的Android IIRC中,术语UI thread似乎将用户指向新的RenderThread ,这个线程例如用于animation涟漪,活动之间的英雄元素或需要发生的任何其他types的animation主线程处理输入事件或忙于在后台为您创建新的东西。 在Android Studio 1.3中,所有三种线程types现在都有自己的注释,以表示特定的代码应该在这个特定的线程上运行。 对我来说,现在的问题是:作为应用程序开发人员,我是否应该关注UIThread上的任何内容 ,即RenderThread , @UIThread在我的应用程序中使用@UIThread ?

Android L(5.x)以编程方式打开/关闭“移动数据”

我需要以编程方式打开/关闭移动数据。 下面的代码不适用于5.x. 你能帮我么。 提前致谢。 private void setMobileDataEnabled(Context context, boolean enabled) throws ClassNotFoundException, NoSuchFieldException, IllegalAccessException, NoSuchMethodException, InvocationTargetException { final ConnectivityManager conman = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); final Class conmanClass = Class.forName(conman.getClass().getName()); final Field connectivityManagerField = conmanClass.getDeclaredField(“mService”); connectivityManagerField.setAccessible(true); final Object connectivityManager = connectivityManagerField.get(conman); final Class connectivityManagerClass = Class.forName(connectivityManager.getClass().getName()); final Method setMobileDataEnabledMethod = connectivityManagerClass.getDeclaredMethod(“setMobileDataEnabled”, Boolean.TYPE); setMobileDataEnabledMethod.setAccessible(true); setMobileDataEnabledMethod.invoke(connectivityManager, enabled); } 03-30 […]

状态栏透明度不起作用

我试图使用此代码在我的应用程序中使状态栏透明: getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); getWindow().setStatusBarColor(Color.TRANSPARENT); 但它不起作用。 状态栏只是更改颜色,变为灰色,不透明。 我的错误在哪里? 如何使状态栏透明?

Android Lollipop Material Design溢出菜单图标颜色

我在Nexus 7上尝试新的Material Design,并且有以下奇怪的行为。 第一个应用程序启动时,溢出菜单图标具有不同的颜色。 我更改了android:textColorPrimary颜色并阅读了本教程 。 首次推出应用: 第二次应用推出: 如您所见,首次启动时未设置主要文本颜色的颜色。 仅当我按下主页按钮并重新启动应用程序时才会设置。 这是我的styles.xml文件: #FF4444 #CC0000 #000000 有人可以解释,为什么会出现这种行为? 我设置android:minSdkVersion=”21″并且不想使用支持库。

Google GCM – 未在Android Lollipop中接收推送通知

在我的Android应用程序中,我使用GCM从我的公司服务器接收消息。 我编写了c2dm的代码,并按照说明将代码迁移到GCM。 ( http://developer.android.com/google/gcm/c2dm.html ) 在Android Lollipop(Nexus 9 wifi)中,设备注册推送通知并接收推送注册ID,但是当我从服务器发送消息时,在设备中我没有收到任何消息。 在以前的Android版本(从4.0到4.4)我没有任何问题。 你知道Lollipop推送通知有什么问题吗? 谢谢