小编Oll*_*e C的帖子

Android NFC API如何支持Mifare Desfire?

我很可能正在开展一个项目,现有的Desfire卡(用于访问付费服务)将被支持NFC的移动设备取代.任何人都可以向我指出任何资源,以帮助我了解a)将Desfire卡的数据复制到移动设备上所涉及的内容,以便它可以代替卡,以及b)让应用程序提供NFC数据以便呈现给读者好像是卡片.所有相关的密钥和访问权限都将由发卡机构提供(如果项目继续进行),但我很想提前了解该流程.

我还需要了解Android NFC API如何支持Desfire,因为据我所知它只能正确支持Classic.http://developer.android.com/reference/android/nfc/tech/package-summary.html

android nfc mifare

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

使用Retrofit时手动解析部分响应

我正在使用一个REST API,它返回一个JSON文档,该文档以如下方式开始,并包含一个带有字符串ID(如"ABC")的项目的"集合".注意"routes"字段,它包含一系列名为"ABC","ABD","ABE"等的字段,但是路由在json中没有表示为数组,所以所有这些

{
"status":true,
"page":1,
"per_page":500,
"total_count":1234,
"total_pages":8,
"total_on_page":500,
"routes":{
    "ABC":[
    {
        "value":22313,
        <......>
Run Code Online (Sandbox Code Playgroud)

我正在使用Retrofit,问题是routes字段不是一个数组(尽管事实上它确实是这样)并且Retrofit/Gson要求我为具有字段变量abc,abd等的路由创建一个模型对象 - 这不是实际的数据变化.由于各种原因,更改服务器API很难,所以我希望在Android客户端上解决这个问题.

我认为这些是选项:

  • 在它到达Gson之前拦截JSON文档并调整文档,可能使用自定义的Gson解析器,或者拦截HTTP响应.

  • 绕过JSON解析,并从Retrofit获取JSON文档(我还没弄清楚如何执行此操作,或者是否可以)

  • 使用我不知道的Retrofit的一些功能将字段名称映射到集合.

我很感激帮助,特别是如果有一种快速简便的方法来解决这个问题.

android json gson retrofit

7
推荐指数
1
解决办法
6565
查看次数

在ScrollView中滚动ListView的问题

这是概念上的场景(不包括linearlayouts)

ScrollView
  Button
  Checkboxes
  Spinner
  ListView (full-size, non-scrolling)
AdMob advert
Run Code Online (Sandbox Code Playgroud)

即滚动窗格,其顶部有过滤UI,后跟结果,但广告必须始终保持可见,向下滚动过滤器UI必须滚动,留出最大的结果空间.

我知道ScrollView中的ListView存在问题,但对我而言,它在很多方面都运行良好(我正在修复ListView的长度以阻止它崩溃).因此屏幕滚动得很好,广告保持在底部,看起来不错.

但是我看到的问题莫名其妙地,当活动打开时,ScrollView向下滚动了一下,因此ListView位于屏幕的顶部.我假设这是一个默认行为,所以我开始尝试强制ScrollView的滚动位置到顶部,但我尝试了各种方法,并看不到任何效果:

scrollview.scrollTo(0, 1000/-1000);
scrollview.smoothScrollBy(0, 1000/-1000);
scrollview.fullScroll(View.FOCUS_UP);
Run Code Online (Sandbox Code Playgroud)

有没有办法强制ScrollView从顶部的滚动位置开始?

如果没有,我怎么能有一个不滚动底部的广告,但是一个总是滚动到顶部的过滤器UI?使用ListView似乎有些过分,因为我不需要滚动,但它确实提供了许多好处,所以最好避免从头开始并自己渲染所有内容.

android

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

使用IntelliJ IDEA时,如何轻松混淆Android应用?

我想有两种选择:

  1. 构建一个并行的ANT脚本并绕过IDE(当IDE非常好时,效率非常低)

  2. 以某种方式将Proguard/yGuard或类似功能与IntelliJ集成

我已经尝试将Proguard/yGuard的插件安装到IntelliJ中,但似乎都没有工作(安装好,但不会出现在Facets下),实际上我并不是100%肯定这些插件会帮我混淆或者是否只是提供用于调试的去混淆工具.

我认为ANT是最好的路线,但会很感激你的想法.我只想要一种方法来减少某人对应用程序进行逆向工程的机会,但不需要花费数小时来设置它.

obfuscation android intellij-idea proguard

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

如何在SOQL中从force.com数据库请求单个随机行?

总行数在10k到100k行范围内.我可以在force.com上使用RAND()吗?不幸的是,尽管所有行都有唯一的数字标识符,但仍有许多空白,我常常想从过滤后的子集中选择一个随机行.

我怀疑没有特别有效的方法来做到这一点,但它有可能吗?

最终,我想做的就是随机从表中(或基于特定过滤条件的子集)中提取一行.

如果force.com不允许我选择一个随机行,那么我可以查询要选择的行,并为所有行分配顺序ID,比如1-1,035,然后在本地选择该范围内的随机数,比如说349,然后得到第349行?

salesforce force.com soql

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

我应该将哪个云数据库后端用于我的Android应用程序?

我正在设计一个服务,它将包含一个基于云的数据库(具有用于管理数据的UI),然后是一个面向最终用户的移动应用程序,用于向需要它的人显示数据(主要是只读) .最终用户将是匿名的.

云数据库/应用服务器需要提供:

  • 一个可靠,可扩展,基于云的数据库

  • 一个不错的简单API,REST,理想情况下是一个Android SDK

  • Web上用于管理数据的UI(包括跨表创建表单)

  • 明智的定价,但不是免费的

我的选择包括Google App Engine,Microsoft Azure,托管Couchdb,Salesforce即将推出的database.com和Amazon SimpleDB.但我的第三个要求是基于网络的内部数据管理表格,这是最大的障碍.

Database.com(或更具体地说是force.com产品)使得创建在线表单以运行报告以及添加和编辑数据非常容易.但Salesforce在处理背后很痛苦,而且database.com定价看起来很昂贵.

人们建议我自己编写一个用于数据编辑和管理的UI,是的,我可以,但这是很多工作(特别是因为我不知道Azure,Python等),我更愿意付出这些努力进入应用程序,这是我的客户将使用.今年我是Android的新手,所以让我的双手充分学习一个平台.

一种选择是让我使用force.com来管理数据,然后将其复制到API调用进入的其他地方,也许是两个世界中最好的.

哪种选择最适合我的需求?我确信在寻找一个不错的后端服务来支持移动应用程序时,我并不孤单.

google-app-engine android salesforce amazon-simpledb azure-sql-database

6
推荐指数
0
解决办法
4234
查看次数

我可以在MapView的叠加层中使用AnimationDrawable吗?

我用XML创建了一个AnimationDrawable,它工作正常.但是在将drawable移动到MapView作为叠加标记(替换一个工作正常的静态drawable)时,动画固执地拒绝播放.我已将调用start()移动到一个按钮进行测试,即使在MapView显示几秒后按下,动画也无法启动.我在logcat中什么也看不到.我知道start()需要在所有窗口设置完成后调用,但这似乎是一个单独的问题.

AnimationDrawables与MapView兼容吗?

有什么特别的东西需要我在MapView中做一个工作吗?

你有没有成功地在MapView中完成一项工作?

使用Matt的解决方案(下面)我通过将ImageView放在MapView的图层中而不是使用叠加来添加AnimationDrawable.

public void showAnimatedMarker(GeoPoint point) {
    LinearLayout v = (LinearLayout) View.inflate(context, R.layout.markerlayout, null);
    ImageView marker = (ImageView) v.findViewById(R.id.marker);
    AnimationDrawable markerImage = (AnimationDrawable)marker.getDrawable();
    this.addView(v, 0, new MapView.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT, point, MapView.LayoutParams.BOTTOM_CENTER));
    markerImage.start();
}
Run Code Online (Sandbox Code Playgroud)

然后是markerlayout.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    >
    <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/marker"
            android:src="@drawable/my_animation_drawable"
    />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

android android-maps android-mapview

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

Android Schematic内容提供程序库配置?

杰克沃顿在最近的一次演讲中提到了这个图书馆,它看起来是一个很好的方法来避免一大堆样板,所以我试了一下.但没有任何成功. https://github.com/SimonVT/schematic

下面是附加了注释的内容提供程序的定义以及清单提供程序元素.问题是Android Studio不喜欢提供程序定义,因为内容提供程序类不扩展ContentProvider.

Caused by: java.lang.ClassCastException: com.myapp.SchematicContentProvider
cannot be cast to android.content.ContentProvider
Run Code Online (Sandbox Code Playgroud)

我错过了什么?它可能与我没有使用的android-apt有关(Schematic推荐它但似乎并不需要它) - 当我尝试使用android-apt时,我得到一个VerifyError,所以不得不从构建中删除它.

AndroidManifest.xml中

    <provider
        android:name="com.myapp.SchematicContentProvider"
        android:authorities="com.myapp.provider"
        android:exported="false" />
Run Code Online (Sandbox Code Playgroud)

和类定义:

import net.simonvt.schematic.annotation.ContentProvider;
import net.simonvt.schematic.annotation.ContentUri;
import net.simonvt.schematic.annotation.TableEndpoint;

@ContentProvider(authority = SchematicContentProvider.AUTHORITY, database = SchematicDatabase.class)
public class SchematicContentProvider {

    public static final String AUTHORITY = "com.myapp.provider";

    interface Path {
        String ROUTES = "routes";
    }

    @TableEndpoint(table = SchematicDatabase.ROUTES) public static class Routes {

        @ContentUri(path = Path.ROUTES, type = "vnd.android.cursor.dir/list", defaultSort = SchematicRouteColumns.TITLE + " ASC")
        public static final Uri ROUTES = …
Run Code Online (Sandbox Code Playgroud)

android android-contentprovider

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

RecyclerView列表包含具有角度边界的项目,而不是水平

您将如何实现如下示例的列表,其中RecyclerView中的项目之间的边界线是一个角度.

我现在的计划是采取每个项目的最顶部三角形部分并将其渲染到上面的项目中,因此视觉上项目看起来像边界是倾斜的,但实际上它们保持水平.然后,该项目可以根据点击在项目中的位置来处理项目选择.但有更好的方法吗?

编辑:考虑到我意识到我不知道如何将图像裁剪为三角形,所以任何指针也是非常有用的.


列出倾斜的项目边界

android android-recyclerview

6
推荐指数
0
解决办法
374
查看次数

如何在Android Kotlin中禁止对字符串常量进行拼写检查?

Android Lint将此代码示例中的字符串常量用作“ dWQGSCDx”上的拼写错误。根据文档,我应该使用@SupressLint(“ Typos”)来抑制它,但那没有实现。我看到其他人建议使用@SuppressWarnings,但这也不起作用。

/**
 * Constants.kt
 */

import android.annotation.SuppressLint

@SuppressLint("Typos")
@SuppressWarnings("SpellCheckingInspection")    
const val SOME_STRING_VALUE = "...dWQGSCDx..."
Run Code Online (Sandbox Code Playgroud)

请注意,这是一个文件作用域的全局常量,它不在类内部,因此不能在包含的类上放置注释。

如何在不完全禁用拼写检查且没有在字典中添加“拼写错误”文本的情况下抑制此常量定义的拼写检查?

android kotlin android-lint android-studio

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