Articles of android 5.1.1 lollipop

在Android 5中工作的button样式,但不是Android 4

我有一个蓝色背景的button样式,在API 22中工作正常,但同样的button以深灰色显示,没有Android 4中的应用样式。这是我的风格: <style name="MyApp.Plain" parent="Theme.AppCompat.NoActionBar"> <item name="android:windowBackground">@drawable/background</item> <item name="android:buttonStyle">@style/MyApp.Widget.Button</item> </style> <style name="MyApp.Widget.Button" parent="@android:style/Widget.Button"> <item name="android:background">@drawable/btn_blue</item> <item name="android:focusable">true</item> <item name="android:clickable">true</item> <item name="android:textStyle">bold</item> <item name="android:textSize">14sp</item> <item name="android:textColor">#fff</item> <item name="android:gravity">center_vertical|center_horizontal</item> </style> 我的btn_blue.xml <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/btn_disabled" android:state_enabled="false"/> <item android:drawable="@drawable/btn_pressed" android:state_enabled="true" android:state_pressed="true"/> <item android:drawable="@drawable/btn_normal_blue" android:state_enabled="true"/> </selector> 和btn_normal_blue.xml <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > <gradient android:angle="90" android:endColor="#368ac6" android:startColor="#0e58a4" […]

Android是强制杀死我的启动BT连接

我已经用Apache cordova为Android写了一个启动器应用程序。 这是一个类似自助亭的应用程序,基本上它工作正常。 不幸的是有一个问题:在某些情况下Android是强制杀死我的应用程序,并立即重新启动它。 – 加载大概需要3秒钟,在那里显示一个白色的屏幕。 它开始全新(onPause,onResume不被调用)。 在日志中我发现: V/WindowManager( 657): Changing focus from Window{42544288 u0 com.android.settings/com.android.settings.SubSettings} to Window{428ad610 u0 com.android.settings/com.android.settings.SubSettings} Callers=com.android.server.wm.WindowManagerService.addWindow:2665 com.android.server.wm.Session.addToDisplay:163 android.view.IWindowSession$Stub.onTransact:111 com.android.server.wm.Session.onTransact:126 I/WindowManager( 657): Gaining focus: Window{428ad610 u0 com.android.settings/com.android.settings.SubSettings} … I/ActivityManager( 657): Force stopping com.myapp.name appid=10119 user=0: clear data I/ActivityManager( 657): Killing 2639:com.myapp.name/u0a119 (adj 7): stop com.myapp.name I/ActivityManager( 657): Force finishing activity ActivityRecord{42542218 […]

共享元素转换成RecyclerView中的视图,可能吗?

鉴于具有共享元素的Activity的正常棒棒糖转换,例如https://github.com/codepath/android_guides/wiki/Shared-Element-Activity-Transition ,通常是从View到Recycler View转换到一个目标活动的正常视图。 然而,如果有针对性的观点,也是在一个回收视图viewholder,有没有办法使这种可能(即提供有针对性的观点ActivityOptionsCompat)? 谢谢!

Android MediaCodec在asynchronous模式下进行编码和解码

我试图解码一个文件中的video,并将其编码为与MediaCodec不同的格式,支持API Level 21及更高版本(Android OS 5.0 Lollipop)的新asynchronous模式 。 在诸如Big Flake ,Google的Grafika以及StackOverflow上的几十个答案等站点上,有许多同步模式的例子,但是它们都不支持asynchronous模式。 在这个过程中,我不需要显示video。 我相信一般的过程是用MediaExtractor读取文件作为MediaCodec (解码器)的input,允许解码器的输出渲染到也是MediaCodec (编码器)的共享input的Surface中,然后最后通过MediaMuxer编写Encoder输出文件。 Surface是在编码器设置过程中创build的,并与解码器共享。 我可以把video解码成一个TextureView ,但是用编码器而不是屏幕共享Surface还没有成功。 我为我的两个编解码器设置了MediaCodec.Callback() 。 我相信一个问题是我不知道在编码器的callback的onInputBufferAvailable()函数中onInputBufferAvailable() 。 我不知道如何(或知道如何)将数据从Surface复制到编码器中 – 这应该是自动发生的(就像在解码器输出上用codec.releaseOutputBuffer(outputBufferId, true); )所做的那样)。 然而,我相信onInputBufferAvailable需要调用codec.queueInputBuffer才能正常工作。 我只是不知道如何设置参数,而不像解码端使用的MediaExtractor那样获取数据。 如果您有一个打开video文件的示例,对其进行解码,使用asynchronousMediaCodeccallback将其编码为不同的分辨率或格式,然后将其另存为文件 ,请分享您的示例代码。 === 编辑 === 这是一个在asynchronous模式下我正在尝试做同步模式的工作示例:ExtractDecodeEditEncodeMuxTest.java: https ://android.googlesource.com/platform/cts/+/jb-mr2-release/tests/tests/media /src/android/media/cts/ExtractDecodeEditEncodeMuxTest.java这个例子是在我的应用程序

Toast:“this”和“getApplicationContext()”之间的区别?

我的设备运行Android 5.1.1,我发现如果我使用 Toast.makeText(this, "This is a toast", Toast.LENGTH_SHORT).show(); 我懂了: 但是如果我使用getApplicationContext()而不是this , Toast.makeText(getApplicationContext(), "This is a toast", Toast.LENGTH_SHORT).show(); 我懂了: 两者都直接从活动中调用。 为什么是这样?

Android – 如何检测3D派对应用程序启动时

我目前正在开发一个平板电脑的应用程序,将在商店展示广告。 我需要为设置应用程序添encryption码保护。 为了实现这一点,我需要检测设置应用程序是在后台服务启动。 对于API低于API 21的设备,可以使用getRunningTasks()完成 。 不幸的是,这个方法现在已经被弃用了。 我试着用这个答案来实现我的目标,但事情并没有按照我的需要工作。 我试图听取V/WindowManager( 740): Adding window Window{1f4535ef u0 com.android.settings/com.android.settings.Settings} at 9 of 16 (before Window{e14eed2 u0 Starting com.android.settings})但我不能看到它作为一个输出。 我正在使用上面引用的答案的代码。 而不是烘烤它,我打印在logcat中。 你能告诉我我的目标可以实现API 21以上的Android版本吗? 我知道这是可能的,因为像智能AppLock这样的应用程序。 提前致谢!

相机的surfaceview不工作在android棒棒糖的操作系统

今天我遇到了surfaceview for camera customization Android surfaceview for camera customization一个问题。 我试了下面的代码。 当我捕捉图像时发生问题,它停止相机预览,并不返回到活动。 以下代码将在程序中执行。 我从stackoverflow上的现有参考中获取此代码 配套class。 public class AndroidCameraSurfaceview extends Activity implements SurfaceHolder.Callback { TextView testView; Camera camera; SurfaceView surfaceView; SurfaceHolder surfaceHolder; boolean preview; PictureCallback rawCallback; ShutterCallback shutterCallback; PictureCallback jpegCallback; int displayheight, displaywidth; Camera.PreviewCallback previewCallback; /** Called when the activity is first created. */ @Override public void […]

如何检查Android棒棒糖电池保护程序是否打开

Android棒棒糖引入了一种可随时开启的节电模式,当电池电量在15%或更低时,默认开启。 这对我的应用程序提出了一个问题,因为电池保护程序禁用提供重要信息的animation。 (为了提供上下文,我的应用程序允许用户configurationAndroid Wear手表;当他们保存一个新的“主题”时,我将主题移动到操作栏上的button上,以便知道保存的位置。animation是由电池保护程序禁用,没有任何反应,当他们打保存,我认为会混淆)。 那么,有没有一种方法来以编程方式确定电池保护程序是否打开? 这样我可以提供animation的替代方法,如显示吐司。

Android Webview提供了net :: ERR_CACHE_MISS消息

我build立了一个networking应用程序,并希望创build一个具有显示我的web应用程序的web视图的android应用程序。 按照Google Developer的指示创build应用程序后,我使用Android 5.1.1将其成功安装到手机上。 但是,当我第一次运行应用程序时,webview显示消息: 网页无法显示 http://www.google.com.sg的网页无法加载为: 网:: ERR_CACHE_MISS 在Google上search了一段时间并尝试了解决scheme之后,我仍然停留在这个错误上。 我已经包括了所有需要的权限,所以不应该这样做。 我的Android Studio也完全更新,所以不是因为这个。

Android 5.x ClassNotFoundException在6.0+上正常工作

我find解决scheme 当瞄准api 21时,编译器将会读取100个dex文件的限制。 所以我find的一个简单的解决scheme是将其添加到您的gradle文件中的dexOptions。 这会将所有的dex文件合并到最低的数量。 dexOptions { preDexLibraries = false } 题 我已经更新了我的项目minSdkVersion从19到21.这导致了5.0 / 5.1设备上的问题,我无法运行该应用程序。 我不断收到我的应用程序类的ClassNotFoundException。 下面是完整的日志,应用程序类和gradle文件。 如果我恢复我的项目回到minSdkVersion 19那么应用程序将运行在4.4以上没有问题。 我曾经尝试过 清洗/重build 更新和降级构build工具版本 所有支持库的跨项目具有相同的版本号 使我所有的清单类相对,然后绝对 更新了所有的Sdk和构build工具 日志 04-27 14:37:07.152 6278-6278/? E/AndroidRuntime: FATAL EXCEPTION: main Process: com.package.testapp, PID: 6278 java.lang.RuntimeException: Unable to instantiate application com.package.TestApplication: java.lang.ClassNotFoundException: Didn't find class "com.package.Application" on path: DexPathList[[zip file "/data/app/com.package.testapp-1/base.apk"],nativeLibraryDirectories=[/data/app/com.package.testapp-1/lib/x86_64, /vendor/lib64, /system/lib64]] […]