标签: android-6.0-marshmallow

内容Uri与文件Uri:将来要使用什么?

我正在开发一个Android相机应用程序,我们在几个场景中使用uris,例如将结果数据从我们的相机传送回启动我们的应用程序结果,或者当用户点击共享按钮时打开IntentChooser.

目前我们在大多数情况下使用File Uris,因为它似乎是更安全的解决方案.使用ContentResolver和MediaStore总会出现问题.此外我记得前段时间有很多应用程序,它们不支持内容Uris,但文件Uris非常好.

但是,当用户决定不在Android 6.0上提供"环聊"文件访问权限时,我们现在通过Google邮寄了与File Uris一起发送不允许其"环聊"应用访问该文件的文件.

我现在的问题是:在向其他应用程序提供内容时,我们通常是否应该从File Uris切换到Content Uris?这是要走的路,每个应用都应该依赖/支持内容Uris吗?

android file-permissions android-contentprovider file-uri android-6.0-marshmallow

5
推荐指数
1
解决办法
2536
查看次数

Android 6.0上的Scanresult始终为空

我已将我的应用迁移到Android 6.0.但是从这次迁移中,Wifi Scanresult总是空着的.在一些文章中,我看到它与位置相关的新权限策略.所以,我添加了使用权限ACCESS_COARSE_LOCATIONACCESS_FINE_LOCATION表现.

此外,我添加了一些代码requestPermissions,onRequestPermissionsResult并成功授予了已检查权限.但扫描结果仍然是空的.

手动启用位置设置后,它可以正常工作.

这个问题有什么解决方案吗?

android wifi network-scan android-6.0-marshmallow

5
推荐指数
1
解决办法
3267
查看次数

PopupWindow输入退出动画不在Marshmallow上工作(23)

我已进入/退出动画风格为PopupWindow这样的

 mPopupWindow.setAnimationStyle(R.style.PopupAnimation);
Run Code Online (Sandbox Code Playgroud)

和风格一样

<style name="PopupAnimation" parent="Widget.AppCompat.PopupWindow">
    <item name="android:windowEnterAnimation">@anim/popup_show</item>
    <item name="android:windowExitAnimation">@anim/popup_hide</item>
</style>
Run Code Online (Sandbox Code Playgroud)

因此,当PopupWindow显示/隐藏时,它具有适用于Lollipop以及所有以前的Android版本的动画.但随着Marshmallow动画时间间隔后弹出窗口显示并且没有动画效果.

动画/弹出窗口show.xml

<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha android:fromAlpha="0.0"
    android:toAlpha="1.0"
    android:interpolator="@android:anim/accelerate_interpolator"
    android:duration="1000"/>
</set>
Run Code Online (Sandbox Code Playgroud)

动画/弹出窗口hide.xml

<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha android:fromAlpha="1.0"
    android:toAlpha="0"
    android:interpolator="@android:anim/accelerate_interpolator"
    android:duration="1000"/>
</set>
Run Code Online (Sandbox Code Playgroud)

android android-animation android-popupwindow android-6.0-marshmallow

5
推荐指数
1
解决办法
801
查看次数

Android 6中的adb在哪里?它被删除了吗?

我在手机上使用终端模拟器通过adb(Android Debug Bridge)连接到其他Android设备.

connect命令是:

/system/bin/adb connect 192.168.179.12
Run Code Online (Sandbox Code Playgroud)

这适用于Android 5及以下版本.但在Android 6(Marshmallow)上,我收到以下错误:

java.io.IOException: No such file or directory
Run Code Online (Sandbox Code Playgroud)

当我在Android 6手机上浏览文件系统时,我无法在此路径中找到adb.在较旧的Android版本上,我可以在此位置找到adb.

谷歌是否从Android 6中删除了adb?Android 6设备上的adb在哪里?

android adb android-6.0-marshmallow

5
推荐指数
1
解决办法
4494
查看次数

Adreno 420驱动程序中的Android 6.0 Nexus 6 Crash

我正在使用OpenGL多个共享上下文GLSurfaceView.从一个活动切换到另一个活动后,adreno驱动程序崩溃.但我的应用程序在其他设备上运行良好.此外,如果我用正常上下文替换共享上下文,它也有效.它是驱动程序中的错误吗?

这是崩溃日志:

11-03 14:03:39.358: A/libc(7900): Fatal signal 11 (SIGSEGV), code 1, fault addr 0x20c in tid 8012 (GLThread 1247)
11-03 14:03:39.460: A/DEBUG(1596): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
11-03 14:03:39.460: A/DEBUG(1596): Build fingerprint: 'google/shamu/shamu:6.0/MRA58K/2256973:user/release-keys'
11-03 14:03:39.460: A/DEBUG(1596): Revision: '0'
11-03 14:03:39.460: A/DEBUG(1596): ABI: 'arm'
11-03 14:03:39.461: A/DEBUG(1596): pid: 7900, tid: 8012, name: GLThread 1247  >>> com.example.app <<<
11-03 14:03:39.461: A/DEBUG(1596): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), …
Run Code Online (Sandbox Code Playgroud)

crash android opengl-es-2.0 android-6.0-marshmallow

5
推荐指数
0
解决办法
465
查看次数

Android M - App Linking无法在Chrome中运行

所以我想在一些新的应用程序中实现App Links,我已经通过开发笔记,设置服务器,使用正确的json标头添加文件并构建了一个测试应用程序.Android M中引入的应用程序深度链接似乎可以正常工作,如果我给自己发送附带链接的电子邮件,但是当我在chrome的示例页面上执行此操作时,它只是重新加载页面.我只是在我的网络服务器上访问根页面.(https://www.EXAMPLE.com).我最初在平板电脑上有一些Chrome问题但是我添加了根证书,现在它变成了绿色

我正在使用Nexus 7 2013,刚刚擦除并运行Android M和Chrome,已更新.

我在我的服务器上提供HTML文件(就像我有一个后退页面一样).

不知道这是我如何使用网页/退回,或者我配置错误.它在Gmail中运行良好,没有任务选择器,但在chrome中不行.

我尝试混合几个例子html看起来像这样,没有一个工作.

<a href="EXAMPLE://">Click HERE for schema</a>

<a href="https://www.EXAMPLE.com/">Click HERE for url with slash</a>

<a href="https://www.EXAMPLE.com">Click HERE for url, no slash</a>

<a href="#" onclick="window.location('https://www.EXAMPLE.com/')">Trying with onclick javascript</a>
Run Code Online (Sandbox Code Playgroud)

我的android清单:

<activity
        android:name=".deepActivity"
        android:label="@string/title_activity_deep" >
        <intent-filter android:autoVerify="true">

            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />

            <data android:scheme="http" android:host="www.EXAMPLE.com" />
            <data android:scheme="https" android:host="www.MYDOMAIN.com" />

            <!-- note that the leading "/" is required for pathPrefix-->
            <!-- Accepts URIs that begin with "example://gizmos”-->

        </intent-filter>
Run Code Online (Sandbox Code Playgroud)

https://developer.android.com/training/app-links/index.html …

android google-chrome deep-linking android-6.0-marshmallow

5
推荐指数
1
解决办法
1760
查看次数

如何使用Permissionsdispatcher库获取新的Android M运行时权限?

我遇到了一家奶酪工厂的文章(google it因为我不能发布超过2个链接与我的声誉),这解释了如何处理Android Marshmallow的新权限系统.在本文中,他引用了Permissionsdispatcher库 ,旨在减少样板代码.所以我从GitHub下载了库演示,但是我收到一条错误,指出无法解析MainActivityPermissionsDispatcher.根据我的理解,应该生成这个类.如何生成它以删除错误?

MainActivity.java

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
    // delegate the permission handling to generated method
    // MainActivityPermissionsDispatcher cannot be resolved
    MainActivityPermissionsDispatcher.onRequestPermissionsResult(this, requestCode, grantResults);
}
Run Code Online (Sandbox Code Playgroud)

java android gradle build.gradle android-6.0-marshmallow

5
推荐指数
1
解决办法
5334
查看次数

如何提供在Google-Now-On-Tap上显示的内容?

背景

我开发的应用程序可以回答某些查询(电话号码查询,也可能是其他查询).

Google在Android 6上引入了一项名为"Google Now On Tap"的新功能(AKA"Assist API"),允许用户查询屏幕上显示的内容(通过长按主页按钮或说出什么东西),不需要输入任何东西.

谷歌在这里提供了开发人员教程

问题

我找不到任何代码片段来展示如何为它准备应用程序.

我注意到的只有我可以从Application类扩展,并在其中添加OnProvideAssistDataListener,并注册到它.

但是,它打开了很多关于如何做到这一点的问题.

可悲的是,因为这个话题很新,我几乎找不到任何关于它的内容,所以我想在这里提出问题.

问题

1)这个新功能是否有任何样本或至少更详细的教程?

2)在文档中说:

在大多数情况下,实施辅助功能支持将使助手能够获得所需的信息.这包括提供android:contentDescription属性,为自定义视图填充AccessibilityNodeInfo,确保自定义ViewGroup正确地公开其子项,并遵循"使应用程序可访问"中描述的最佳实践.

为什么以及如何使用应用程序的辅助功能?与公开子视图(或视图)有什么关系?如果应用程序还没有运行,它甚至可能是关于视图的(因为该功能在任何应用程序,任何地方都被激活).

我认为仅当前景应用程序是我的应用程序时才会调用它,但如果是这样,我如何实际提供针对所有应用程序显示的查询,具体取决于输入内容?

3)从Application扩展的类是否应该实现OnProvideAssistDataListener?如果是这样,为什么需要注册呢?如果没有,Google-Now-On-Tap如何使用呢?它不能只打开所有具有这类课程的应用程序,看看它们是否注册...

4)文档有一个我不明白的样本片段:

@Override
public void onProvideAssistContent(AssistContent assistContent) {
  super.onProvideAssistContent(assistContent);

  String structuredJson = new JSONObject()
       .put("@type", "MusicRecording")
       .put("@id", "example.comhttps://example.com/music/recording")
       .put("name", "Album Title")
       .toString();

  assistContent.setStructuredData(structuredJson);
}
Run Code Online (Sandbox Code Playgroud)

新功能对每个键有什么作用?是应用程序还是Google-Now-On-Tap?我有什么选择呢?这是我在哪里定义我的应用程序是否可以处理该功能建议我的内容?AssistContent应该是我看到的输入,并决定我的应用程序是否可以处理它或忽略它?

android android-6.0-marshmallow google-assist-api

5
推荐指数
0
解决办法
424
查看次数

为什么Android PlacePicker不是(!)需要ACCESS_FINE_LOCATION权限才能工作?

PlacePicker是一个有用的小部件com.google.android.gms:play-services-places:9.4.0.在此处查找说明:PlacePicker

该文档明确指出您需要ACCESS_FINE_LOCATION权限才能使用它.

在Marshmallow及以上,您还必须要求用户授予此权限.
但它似乎没有做任何这个工作!
我的应用程序

  • 提供地图API密钥
  • 没有在AndroidManifest中定义权限
  • 要求用户随时授予此权限

但是在Marshmallow设备上运行应用程序会启动PlacePicker,我可以

  • 正确选择一个地方(没有API密钥就不可能).
  • 通过MyLocation-Button转到"我的位置"(可能没有API密钥)

任何人都可以确认这个或解释为什么这个小部件工作没有授予适当的权限?

android android-permissions google-maps-android-api-2 android-6.0-marshmallow

5
推荐指数
1
解决办法
540
查看次数

我可以检查我的Android设备是否以安全模式启动或不以编程方式启动

我是android的新学习者,我想开发一个API.我想检查我的Android设备是否以安全模式启动或不以编程方式启动,是否有任何参数?我检查了Settings.System参数,但我没有找到任何东西?我使用Visual Studio进行开发和android marshmallow进行测试.

android safe-mode android-6.0-marshmallow

5
推荐指数
0
解决办法
209
查看次数