Articles of android 5.1.1 lollipop

Android – 如何检测3d party应用程序何时启动

我目前正在开发一款平板电脑应用程序,用于在商店中展示商业广告。 我需要为设置应用程序添加密码保护。 为此,我需要检测设置应用程序是在后台服务中启动的。 对于Android版本低于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版本中实现我的目标吗? 我知道这是可能的,因为像Smart AppLock这样的应用程序可以实现。 提前致谢!

用于相机的surfaceview在android lollipop os中不起作用

今天我在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 onCreate(Bundle savedInstanceState) { […]

如何检查Android Lollipop电池保护程序是否已打开

Android Lollipop推出了一种可以随时打开的节电模式,默认情况下,当电池电量为15%或更低时,它会打开。 这对我的应用程序造成了问题,因为省电模式会禁用提供重要信息的animation。 (只是为了给出上下文,我的应用程序允许用户配置Android Wear表盘;当他们保存新的“主题”时,我将主题移动到操作栏上的按钮,以便他们知道它保存到的位置。电池保护程序禁用animation,当他们点击保存时没有任何反应,我认为这会令人困惑。) 那么,有没有办法以编程方式确定电池保护程序是否已打开? 这样我可以提供animation的替代方案,例如显示Toast。

Android XML:android:elevation vs. app:elevation

我什么时候使用android:elevation和app:elevation ? 这两者有什么区别?

Android 5.x ClassNotFoundException在6.0+上运行正常

我已将项目的minSdkVersion从19更新为21.这导致5.0 / 5.1设备上的问题,我无法运行该应用程序。 我一直在我的Application类上得到一个ClassNotFoundException。 完整日志,应用程序类和gradle文件如下所示。 如果我将我的项目还原为minSdkVersion 19,那么应用程序将在4.4+上运行,没有任何问题。 我试过的 清洗/重建 更新和降级构建工具版本 跨项目的所有支持库都具有相同的版本号 使我所有的清单类相对而绝对 更新了所有Sdk和构建工具 日志 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]] at android.app.LoadedApk.makeApplication(LoadedApk.java:563) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4526) at android.app.ActivityThread.access$1500(ActivityThread.java:151) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1364) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) […]

在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(); 我懂了: 两者都直接从活动中调用。 为什么是这样?