标签: android-5.1.1-lollipop

Android getResources().getDrawable()已弃用API 22

新的Android API 22 getResources().getDrawable()现已弃用.现在最好的方法是只使用getDrawable().

改变了什么?

android android-resources android-drawable android-5.1.1-lollipop

672
推荐指数
7
解决办法
35万
查看次数

Android Webview提供net :: ERR_CACHE_MISS消息

我构建了一个Web应用程序,并希望创建一个具有显示我的Web应用程序的webview的Android应用程序.按照Google Developer的说明创建应用后,我使用Android 5.1.1成功将其安装在手机上.

但是,当我第一次运行应用程序时,webview会显示以下消息:

网页无法显示

无法加载http://www.google.com.sg上的网页:

网:: ERR_CACHE_MISS

在Google上搜索了一段时间并尝试解决方案之后,我仍然坚持这个错误.我已经包含了所有必需的权限,因此不应该这样做.我的Android Studio也已全面更新,因此并非如此.

android webview android-studio android-5.1.1-lollipop

115
推荐指数
9
解决办法
11万
查看次数

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)
         at android.app.ActivityThread.main(ActivityThread.java:5254)
         at java.lang.reflect.Method.invoke(Native Method)
         at java.lang.reflect.Method.invoke(Method.java:372)
         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
      Caused by: java.lang.ClassNotFoundException: Didn't find class "com.package.TestApplication" 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 dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
         at …
Run Code Online (Sandbox Code Playgroud)

java android gradle android-5.0-lollipop android-5.1.1-lollipop

29
推荐指数
2
解决办法
2692
查看次数

Android XML:android:elevation vs. app:elevation

我什么android:elevation时候使用app:elevation?何时使用?

这两者有什么区别?

android android-layout android-xml android-5.0-lollipop android-5.1.1-lollipop

27
推荐指数
2
解决办法
1万
查看次数

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

Android Lollipop推出了一种可以随时打开的节电模式,默认情况下,当电池电量为15%或更低时,它会打开.这给我的应用程序带来了问题,因为省电模式会禁用提供重要信息的动画.(只是为了给出上下文,我的应用程序允许用户配置Android Wear表盘;当他们保存新的"主题"时,我将主题移动到动作栏上的按钮,以便他们知道保存到的位置.电池保护程序禁用动画,当他们点击保存时没有任何反应,我认为这会令人困惑.)

那么,有没有办法以编程方式确定电池保护程序是否打开?这样我可以提供动画的替代方案,例如显示Toast.

android battery-saver android-5.0-lollipop android-5.1.1-lollipop

21
推荐指数
1
解决办法
4689
查看次数

faceview for camera在android lollipop os中不起作用

今天我在android中遇到了一个问题surfaceview for camera customization.我尝试了下面的代码.

拍摄图像时出现问题,它会停止相机预览并且不会返回活动.

以下代码将在程序中实现.我从stackoverflow上的现有引用中获取此代码

  1. 支持班级.

    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) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.camerasurfaceview);
    
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
        surfaceView = (SurfaceView) findViewById(R.id.surfaceView);
        surfaceHolder = surfaceView.getHolder();
    
        surfaceHolder.addCallback(this);
    
        surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
    
        jpegCallback = new PictureCallback() {
            public void onPictureTaken(byte[] data, Camera camera) {
                Bundle …
    Run Code Online (Sandbox Code Playgroud)

android android-intent android-camera android-5.1.1-lollipop

15
推荐指数
3
解决办法
4099
查看次数

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这样的应用程序可以实现.提前致谢!

android password-protection android-5.1.1-lollipop

15
推荐指数
1
解决办法
1502
查看次数

SubscriptionInfo.getMnc()为具有不同运营商的两个SIM返回相同的值

我试图在具有双Sim(两者都有效)的Android 5.1设备中获取MCC和MNC号码(基本上我想要IMSI号码但这些也足够了).由于5.1支持双Sim,所以我使用了这样的Subscription管理器:

SubscriptionManager manager = SubscriptionManager.from(this);
List<SubscriptionInfo> sil = manager.getActiveSubscriptionInfoList();
    if (sil != null) {
        for (SubscriptionInfo subInfo : sil) {
            Log.v("TestMain", "SubInfo:" + subInfo);
        }
    } else {
        Log.v("TestMain", "SubInfo: list is null");
    }
Run Code Online (Sandbox Code Playgroud)

得到了这个输出:

07-24 18:28:32.162    3844-3844/? V/TestMain? SubInfo:{id=1, mcc 405 mnc 803, iccId=89918030914128062059 simSlotIndex=0 displayName=Aircel Karnataka carrierName=Aircel — Aircel Karnataka nameSource=0}
07-24 18:28:32.162    3844-3844/? V/TestMain? SubInfo:{id=2,  mcc 405 mnc 803, iccId=8991860044481968955 simSlotIndex=1 displayName=CARD 2 carrierName=Vodafone Karnataka nameSource=0}
Run Code Online (Sandbox Code Playgroud)

MCC(将与同一个国家/地区相同)注意到虽然运营商不同,但MNC是相同的.

当我关掉手机时,我在logcat中看到了这一行:

07-24 18:31:02.295      616-616/? V/KeyguardUpdateMonitor? SubInfo:{id=1,  mcc 405 mnc …
Run Code Online (Sandbox Code Playgroud)

android android-source telephonymanager dual-sim android-5.1.1-lollipop

14
推荐指数
1
解决办法
2072
查看次数

Android MediaCodec在异步模式下编码和解码

我正在尝试解码文件中的视频,并使用API Level 21及更高版本(Android OS 5.0 Lollipop)支持MediaCodec的新异步模式将其编码为不同的格式.

Big Flake,Google的Grafika等网站上以同步模式执行此操作有很多示例,并且StackOverflow上有许多答案,但它们都不支持异步模式.

我不需要在此过程中显示视频.

我相信一般的程序是用一个读取文件MediaExtractor作为MediaCodec(解码器)的输入,允许解码器的输出渲染成一个Surface也是共享输入到MediaCodec(编码器),然后最后写入编码器输出文件通过MediaMuxer.它Surface是在编码器设置期间创建的,并与解码器共享.

我可以将视频解码为a TextureView,但Surface与编码器共享而不是屏幕也没有成功.

MediaCodec.Callback()为我的两个编解码器设置了s.我认为问题在于我不知道在Encoder的回调onInputBufferAvailable()函数中该怎么做.我不知道(或知道如何)将数据从Surface编码器复制到编码器中 - 这应该自动发生(就像在解码器输出上一样codec.releaseOutputBuffer(outputBufferId, true);).然而,我认为onInputBufferAvailable需要打电话codec.queueInputBuffer才能运作.我只是不知道如何设置参数而不从像MediaExtractorDecode端使用的那样获取数据.

如果您有一个打开视频文件MediaCodec示例,对其进行解码,使用异步回调将其编码为不同的分辨率或格式,然后将其保存为文件,请分享您的示例代码.

=== 编辑 ===

下面是我在异步模式下尝试做的同步模式的一个工作示例:ExtractDecodeEditEncodeMuxTest.java:https://android.googlesource.com/platform/cts/+/jb-mr2-release/tests/tests/media /src/android/media/cts/ExtractDecodeEditEncodeMuxTest.java这个例子在我的应用程序中工作

Android MediaCodec

android video-encoding mediacodec android-5.0-lollipop android-5.1.1-lollipop

14
推荐指数
1
解决办法
9914
查看次数

使用自定义字体创建数字时钟小部件

我正在尝试使用自定义字体创建数字时钟小部件.事实证明这是我体验Android的最大挑战.(认为​​它会像它一样简单tc.setTypeFace("whatever")并且完成它)

最好的方法似乎是刮擦TextClock并使用a ImageView并使用自定义AlarmManager将Bitmap传递给它,以便每秒为视图创建一个新图像.

在进入Bitmap生成之前,我练习了一个简单的TextView使用本教程的Alarm Manager Widget

我的问题是我无法每秒更新一次.我使用 am.setRepeating(AlarmManager.RTC_WAKEUP , System.currentTimeMillis()+1000, 1000, pi);但它仍然只是每分钟左右更新它(虽然不是每分钟的顶部).我认为这与最新操作系统(Kitkat,Lollipop)的处理方式有关AlarmManagers.

我的问题是:

  1. 这是正确的方法吗?如果没有,请解释我应该做什么.

  2. 如何让窗口小部件每秒更新一次?

android widget alarmmanager android-appwidget android-5.1.1-lollipop

13
推荐指数
1
解决办法
5085
查看次数