标签: android-6.0-marshmallow

Android M 权限授予回调

我正在 Android M Dev Preview 上测试权限系统。我有一个关于回调函数的问题。Activity 类有一个新的 API:

public void onRequestPermissionsResult (int requestCode, 
               String[] permissions, int[] grantResults) { }
Run Code Online (Sandbox Code Playgroud)

我想问一下为什么将 permissions 和 grantResults 参数定义为数组?我知道使用 可以同时询问多个权限requestPermissions(),但是如果请求代码用于请求的权限集,那么仅拥有一个整数 grantResults (不确定权限参数)是否就足够了?

permissions android android-6.0-marshmallow

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

Android Marshmallow中的SimpleDateFormat行为更改

我在Android 6.0,Marshmallow上遇到了日期格式问题.抛出下面提到的异常的代码是我的应用程序用于API请求("客户端")的纯Java库(单独构建).该库是用Java 1.6构建的,如果它是相关的...无论如何,这是代码;

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd E hh:mm aa", Locale.UK);
Date eventDate = dateFormat.parse(StringUtils.substring(record, 0, 23).trim());
Run Code Online (Sandbox Code Playgroud)

...... record有价值;

2015-10-23 Fri 10:59 PM BST   3.60 meters
Run Code Online (Sandbox Code Playgroud)

......"修剪"之后;

2015-10-23 Fri 10:59 PM
yyyy-MM-dd E hh:mm aa
Run Code Online (Sandbox Code Playgroud)

这段代码自Froyo的古老时代以来一直有效,并经过单元测试.除了棉花糖之外,抛出异常;

10-23 21:01:56.816 4091-4110/com.oceanlife E/ParseException: SynchroniseTidePosition.doInBackground
10-23 21:01:56.816 4091-4110/com.oceanlife E/ParseException: java.text.ParseException: Unparseable date: "2015-10-23 Fri 10:59 PM" (at offset 21)
10-23 21:01:56.816 4091-4110/com.oceanlife E/ParseException:     at java.text.DateFormat.parse(DateFormat.java:579)
10-23 21:01:56.816 4091-4110/com.oceanlife E/ParseException:     at com.oceanlife.rover.handler.XTideParser.parseResponse(XTideParser.java:69)
10-23 21:01:56.816 4091-4110/com.oceanlife E/ParseException:     at com.brantapps.oceanlife.task.SynchroniseTidePosition.doInBackground(SynchroniseTidePosition.java:107)
10-23 21:01:56.816 4091-4110/com.oceanlife E/ParseException:     at …
Run Code Online (Sandbox Code Playgroud)

java android android-6.0-marshmallow

6
推荐指数
1
解决办法
1917
查看次数

在Android 6.0中使用lockNow后如何保留指纹解锁?

使用DevicePolicyManager在Android 6.0中执行lockNow()后,我们如何保留无缝指纹解锁效果?

假设在具有指纹扫描仪的设备上,应用程序调用lockNow()具有"USES_POLICY_FORCE_LOCK"并且已被授予设备管理员状态.

这是lockNow()函数的文档:

public void lockNow()

立即锁定设备,就像锁定屏幕超时在此呼叫时已过期一样.

呼叫设备管理员必须已请求USES_POLICY_FORCE_LOCK才能调用此方法; 如果没有,则抛出安全异常.

获得设备管理员状态并执行锁定就好了.为了便于参考,请参阅我使用的方法的SO问题.

问题是在手机锁定后,指纹扫描仪不再能够顺利解锁手机.相反,指纹扫描仪会提示我输入后备PIN码. 为了在执行lockNow()调用后保留指纹解锁效果,Android 6.0中是否有新功能?

我查看了所有的DevicePolicyManager标志(在文档中),它似乎提供了禁用事物而不是启用事物.

谢谢!

android fingerprint device-admin android-6.0-marshmallow

6
推荐指数
1
解决办法
4121
查看次数

Bitmap.Options.inSampleSize 应该如何工作?

初始代码是官方文档:Loading Large Bitmaps Efficiently

我开始四处寻找,发现图像没有按照文档中的描述调整大小:

如果设置为 > 1 的值,则请求解码器对原始图像进行二次采样,返回较小的图像以节省内存。样本大小是对应于解码位图中单个像素的任一维度中的像素数。例如,inSampleSize == 4 返回一个图像,其宽度/高度是原始图像的 1/4,像素数是 1/16。任何 <= 1 的值都被视为与 1 相同。 注意:解码器使用基于 2 的幂的最终值,任何其他值将向下舍入到最接近的 2 的幂。

当我运行代码时:

    BitmapFactory.Options options = new BitmapFactory.Options();
    options.inJustDecodeBounds = true;
    BitmapFactory.decodeResource(res, resId, options);
    Log.e(LOG_TAG, "orig img size " + options.outWidth + "x" + 
          options.outHeight);

    // Calculate inSampleSize
    // options.inJustDecodeBounds = false;  // version 2
    for (int i = 2; i<20; i*=2) {
        options.inSampleSize = i;
        Log.d(LOG_TAG, "inSampleSize: " + options.inSampleSize);
        Bitmap b = …
Run Code Online (Sandbox Code Playgroud)

android image bitmap android-6.0-marshmallow

6
推荐指数
1
解决办法
6609
查看次数

Android Marshmallow:如果没有互联网访问,如何避免 Wi-Fi 掉线

我有一台运行 MarshMallow 6.0 的 Nexus 5x,它与无法访问互联网的设备的 Wi-Fi 相关联。Android 不断断开连接,甚至在几次尝试后都不会自动重新连接,因为它检测到没有 Internet 访问。

即使没有 Internet 访问,我如何强制 Android 保持与此 Wi-Fi 的连接?

该设备未扎根,但我可以在实际选择此 Wi-Fi 点的应用程序中以编程方式更改“事物”。

编辑 #1

在我的应用程序中,我目前正在使用 enableNetwork API。该文件指出:

如果应用程序的目标 SDK 版本为 LOLLIPOP 或更新版本,即使连接了 Wi-Fi,网络通信也可能无法使用 Wi-Fi;流量可能会通过另一个网络发送,例如蜂窝数据、蓝牙网络共享或以太网。例如,如果另一个提供 Internet 访问(例如蜂窝数据)的网络可用,流量将永远不会使用不提供 Internet 访问(例如无线打印机)的 Wi-Fi 网络。需要确保其网络流量使用 Wi-Fi 的应用程序应使用诸如 bindSocket(java.net.Socket)、openConnection(java.net.URL) 或 bindProcessToNetwork(Network) 之类的 API 来执行此操作。

在这种特殊情况下,潜在的其他网络(蜂窝数据)关闭,因为设备被迫处于平面模式。

android android-wifi android-6.0-marshmallow

6
推荐指数
1
解决办法
4211
查看次数

DrawerLayout在更新到Android 6.0.1后停止正常工作

几个小时前我已经将我的Android设备版本更新到6.0.1,从那时起我的应用程序崩溃了,当我离开活动时,它持有DrawerLayout并出现此错误:

12-16 16:08:04.122 9331-9331/? E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.my.app, PID: 9331
java.lang.IllegalArgumentException: DrawerLayout must be measured with MeasureSpec.EXACTLY.
at android.support.v4.widget.DrawerLayout.onMeasure(DrawerLayout.java:831)
at android.view.View.measure(View.java:18794)
at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:715)
at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:461)
at android.view.View.measure(View.java:18794)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
at android.support.v7.internal.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:124)
at android.view.View.measure(View.java:18794)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1465)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:748)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:630)
at android.view.View.measure(View.java:18794)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
at android.view.View.measure(View.java:18794)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1465)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:748)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:630)
at android.view.View.measure(View.java:18794)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
at com.android.internal.policy.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2643)
at android.view.View.measure(View.java:18794)
at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2100)
at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1216)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1452)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1107)
at …
Run Code Online (Sandbox Code Playgroud)

android android-6.0-marshmallow

6
推荐指数
1
解决办法
641
查看次数

带有缩放标记的动画列表在Marshmallow中不起作用

我有一个动画列表xml drawable anim_progress.xml:

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:duration="100"> 
        <scale android:drawable="@drawable/frame_1" android:scaleGravity="center"/> 
    </item>

    <item android:duration="100"> 
        <scale android:drawable="@drawable/frame_2" android:scaleGravity="center"/> 
    </item>

    <item android:duration="100"> 
        <scale android:drawable="@drawable/frame_3" android:scaleGravity="center"/> 
    </item>

    .
    .
    .

</animation-list>
Run Code Online (Sandbox Code Playgroud)

我使用scale标签,因为图像frame_x.png比容器视图大.其原因是能够适应大多数屏幕尺寸.

我使用这个框架动画作为indeterminateDrawable我的自定义ProgressBar:

<ProgressBar 
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:indeterminateOnly="true"
    android:indeterminate="true"
    android:foregroundGravity="center"
    android:indeterminateDrawable="@drawable/anim_progress"
    /> 
Run Code Online (Sandbox Code Playgroud)

它在Marshmallow之前的Android版本中运行正常.我检查了模拟器和设备.但在棉花糖中,它什么也没有显示出来.空白的空白空间.以及Android Studio中的预览窗格.

如果我scale从中移除标签animation-list,它在Marshmallow中运行良好,并以正确的方式进行缩放,但似乎在其他Android版本中被裁剪.

我知道我可以在drawable-v23文件夹中创建单独的文件,之前我想问一下是否有人可以通过xml分享其他技术来缩放Marshmallow中可绘制的进度条框架动画.

xml animation android scale android-6.0-marshmallow

6
推荐指数
1
解决办法
677
查看次数

scaleGestureDetector.getScaleFactor() 在 Android 6.0 中总是返回 1.0

我正在使用 ScaleGestureDetector 来检测捏合和捏合动作,方法是获取比例因子,如果小于 1,则缩小,反之亦然。

但问题在于,在 Android 6.0 上,比例因子始终为 1.0,这使得无法区分捏合和捏合。

在此先感谢您的帮助。

import android.content.Context;
import android.os.Handler;
import android.support.v4.view.GestureDetectorCompat;
import android.support.v4.view.MotionEventCompat;
import android.util.Log;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.ScaleGestureDetector;
import android.view.VelocityTracker;
import android.widget.FrameLayout;

public class TouchableWrapper extends FrameLayout
{
    private GestureDetectorCompat mGestureDetector;
    private ScaleGestureDetector mScaleGestureDetector;
    private VelocityTracker mVelocityTracker;
    private boolean acceptEvents=true;
    ScaleGestureDetector temp;


private final GestureDetector.SimpleOnGestureListener mGestureListener = new GestureDetector.SimpleOnGestureListener()
{

    @Override
    public boolean onDoubleTap(MotionEvent e)
    {
        EventBus_Singleton.getInstance().post(new EventBus_Poster(Constants.MAP_DOUBLE_TOUCHED));
        return true;
    }

    @Override
    public boolean onDoubleTapEvent(MotionEvent e) {
        return super.onDoubleTapEvent(e);
    }



};

private …
Run Code Online (Sandbox Code Playgroud)

android gesture-recognition android-6.0-marshmallow

6
推荐指数
1
解决办法
1632
查看次数

React Native-无法使用PermissionsAndroid请求位置权限

我正在尝试请求运行时位置权限,但我的诺言不断抛出此异常:

“试图使用权限API,但主机活动未实现PermissionAwareActivity”

我的代码如下所示:

  PermissionsAndroid.check(PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION)
  .then((preGranted) => {
    console.log('pre-granted', preGranted)
    if (!preGranted) {
      PermissionsAndroid.request(
        PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION,
        { 'title': 'Enable location', 'message': 'Boss said so..' }
      )
      .then((granted) => {
        if (granted) {
          console.log('GRANTED AFTER ASKING:', granted)
          debugger
        }
      })
    }
  })
Run Code Online (Sandbox Code Playgroud)

在我的清单中,我有:

  <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
Run Code Online (Sandbox Code Playgroud)

有人听到过这个消息吗?什么是PermissionAwareActivity,无法在线查找有关它的任何信息。

android android-permissions react-native android-6.0-marshmallow

6
推荐指数
1
解决办法
3925
查看次数

错误在Android版本6棉花糖中膨胀类de.hdodenhof.circleimageview.CircleImageView

我创建了一个使用此hdodenhof CircleImageview库的应用程序。我的应用程序可在Android 7和7.1上正常运行,但在棉花糖/ Android 6等较低版本中崩溃。如何解决此问题?我已经阅读了他的GitHub帖子,但是由于人们要求从.xml中删除属性,所以它不能解决我的问题,但是我没有使用这些属性。

这是CircleImageView的简单实现:

<de.hdodenhof.circleimageview.CircleImageView
        android:id="@+id/civ_requests"
        android:layout_width="80sp"
        android:layout_height="80sp"
        android:layout_margin="10sp"
        android:src="@drawable/profilesvg" />
Run Code Online (Sandbox Code Playgroud)

这是错误:

FATAL EXCEPTION: main
Process: com.milind.locatemymate, PID: 4288
android.view.InflateException: Binary XML file line #0: Binary XML file line #0: Error inflating class de.hdodenhof.circleimageview.CircleImageView
at android.view.LayoutInflater.inflate(LayoutInflater.java:539)
at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
at com.milind.locatemymate.Fragment.Requests$1.onCreateViewHolder(Requests.java:152)
at com.milind.locatemymate.Fragment.Requests$1.onCreateViewHolder(Requests.java:103)
at android.support.v7.widget.RecyclerView$Adapter.createViewHolder(RecyclerView.java:6685)
at android.support.v7.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:5869)
at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5752)
at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5748)
at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2232)
at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1559)
at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1519)
at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:614)
at android.support.v7.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3812)
at android.support.v7.widget.RecyclerView.onMeasure(RecyclerView.java:3225)
at android.view.View.measure(View.java:18788)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1465)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:748)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:630)
at android.view.View.measure(View.java:18788)
at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1632)
at …
Run Code Online (Sandbox Code Playgroud)

android android-layout android-xml layout-inflater android-6.0-marshmallow

6
推荐指数
3
解决办法
4652
查看次数