小编DAr*_*rkO的帖子

指南针GPS目的地指南

我想ImageView用箭头从当前用户位置旋转一些先前保存的GPS位置.我该怎么做呢?

初始轴承是否从Location.distanceBetween方法中得到了正确的方法?如果是这样,我如何将其与指南针读数一起使用?

java gps android compass-geolocation

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

创建上传队列

所以我需要将多个图像上传到网络服务器.我创建了上传方法.我现在需要一种方法来建立一个上传队列,以便我可以管理和取消上传.做这样的事情的最佳方法是什么?我会为此运行服务.我正在查看IntentService类,它似乎是一个很好的方法来执行队列(因为我只需要一次上传1个文件),但我的上传将包含3个部分 - 第一部分我正在调用服务器获得授权,第二个将是实际上传,第三个将发送文件已成功发送的确认.

好的,这是交易.如何取消队列中的特定下载?如果进程位于上传的第三部分(将成功的上传信息发布到webService),如何推迟销毁服务?

service upload android android-intent

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

Spring Boot JPA@CreatedDate @LastModifiedDate not being populated when saving the object

I am writing an app with Spring Boot + JPA, using a Postgres database. I have a User Entity and I am trying to get a timestamp when the user record is saved and/or modified. This is not working. The record that is being saved has "null" for both createdDate and lastModifiedDate.

Here is all the relevant code in Kotlin:

@Entity
@Table(name = "app_user")
@EntityListeners(AuditingEntityListener::class)
data class User(
        @Id
        @GeneratedValue(strategy = GenerationType.AUTO)
        @Column(name = "id")
        val id: UUID? = null, …
Run Code Online (Sandbox Code Playgroud)

spring spring-data-jpa kotlin spring-boot

5
推荐指数
2
解决办法
7573
查看次数

myLocationOverlay更改标记

如何在谷歌地图中更改MyLocationOverlay的默认蓝色动画标记?

java maps android google-maps marker

4
推荐指数
2
解决办法
9207
查看次数

在android中进行http调用的最佳做法是什么?

所以我需要进行一些http调用,这些调用返回包含单个或一组json对象的JSON响应.我有整个部分的执行http客户端调用和工作,它返回一个带有json响应的字符串.

所以我的问题是:什么是使调用异步的最佳方法.我目前正在使用异步任务调用方法,该方法在后台方法中返回字符串,并通过另一个调用解析用于解析的静态方法解析字符串,该方法返回包含我发送到postExecute部分的所有数据的POJO根据结果​​将结果呈现给ui.这是一个好习惯还是有更好的方法?

我在考虑引入接口来提供数据,例如onSuccess listener和onFail Listener.那有什么建议吗?

谢谢.

multithreading android http

4
推荐指数
1
解决办法
2066
查看次数

Android从data.Email查询获取联系人照片

我正在创建一个自动填充字段,通过显示名称和电子邮件查询联系人.当有人在过滤后点击所需的联系人时,将该联系人添加到带有他的电子邮件的列表中,显示名称和图片(如果他有).

所以到目前为止我已经设法做了所有事情,除了让照片出现.以下是我如何运行查询以获取电子邮件,显示名称,ID和照片ID.

    return mContent.query(Email.CONTENT_URI,
              PROJECTION, filter, null, null);
Run Code Online (Sandbox Code Playgroud)

投影的地方是:

 PROJECTION = new String[] {ContactsContract.Contacts._ID,
              ContactsContract.Contacts.DISPLAY_NAME,
              ContactsContract.Contacts.PHOTO_ID,
                Email.DATA
            };
Run Code Online (Sandbox Code Playgroud)

这个做我需要的并返回所有数据.但是我在调​​试此问题时注意到的一件事是联系人ID与例如针对特定显示名称对ContactsContract.Contacts.CONTENT_URI运行查询时的联系人ID不同.

例如我运行的测试我通过运行Contacts.CONTENT_URI获得了所有联系人.我给了一个图像联系人,ID为152.但是对于同一联系人,对Email.CONTENT_URI的查询给了我一个452的id(使用相同的显示名称和电子邮件地址).因此,当我试图获取包含Id 452的内容uri的照片时,它返回该照片不存在,但如果我尝试获取152的照片它完美地工作.

是什么导致了这个问题?我如何获得正确的用户名?是否有任何关系查询,我可以运行以获取联系人ID,或者可能是在这个问题的帮助下获得它的正确方法.

谢谢.

编辑

我发现这是在挖掘旧代码.可能对任何人都有帮助.

所以完整的查询:

String[] PROJECTION = new String[] { ContactsContract.RawContacts._ID,
            ContactsContract.Contacts.DISPLAY_NAME, ContactsContract.Contacts.PHOTO_ID,
            Email.DATA, ContactsContract.CommonDataKinds.Photo.CONTACT_ID };

                String order = " CASE WHEN " + ContactsContract.Contacts.DISPLAY_NAME
                        + " NOT LIKE '%@%' THEN 1" + " ELSE 2 END, "
                        + ContactsContract.Contacts.DISPLAY_NAME + " COLLATE NOCASE";
                String filter = Email.DATA + " NOT LIKE '' ) GROUP BY ( " …
Run Code Online (Sandbox Code Playgroud)

email android photo contacts

3
推荐指数
1
解决办法
4077
查看次数

在新文本加载时重置TextView位置(可滚动)

我的页面加载了一个可滚动的TextView.不幸的是,当将新文本加载到视图中时,该位置似乎会粘住,因此Text会在屏幕外显示或完全不可见.有没有办法将当前"已查看"的文本重置为顶部?

java android scroll textview

3
推荐指数
1
解决办法
1570
查看次数

Spring Boot Webflux Security - 编写测试时读取服务类中的主体

我对 Spring 生态系统和 Webflux 都很陌生。我试图弄清楚两件事,但找不到任何具体细节。

我的设置:

我正在使用 WebFlux 编写 Spring Boot 2 REST API(不使用控制器,而是使用处理程序函数)。身份验证服务器是一项单独的服务,它发出 JWT 令牌,并将这些令牌作为身份验证标头附加到每个请求。这是一个请求方法的简单示例:

public Mono<ServerResponse> all(ServerRequest serverRequest) {
        return principal(serverRequest).flatMap(principal ->
                ReactiveResponses.listResponse(this.projectService.all(principal)));
    }
Run Code Online (Sandbox Code Playgroud)

我用它来响应用户有权访问的所有“项目”列表的 GET 请求。

之后我有一个服务检索该用户的项目列表,并呈现一个 json 响应。

问题:

现在,为了根据当前用户 ID 过滤项目,我需要从请求主体中读取它。这里的一个问题是,我有很多需要当前用户信息的服务方法,并将其传递给服务似乎是一种矫枉过正。一种解决方案是从以下位置读取服务内的主体:

Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal();

问题一:

在编写功能代码时,这通常是一个很好的做法吗(如果我这样做而不是传播主体)?尽管在每种方法中读取主体并将其从请求发送到服务都很复杂,但这是否是一个好方法?

问题2:

我应该使用 SecurityContextHolder 线程本地来获取主体,如果我这样做,我该如何为我的服务编写测试?

如果我使用安全上下文,如何测试需要类型为主体的服务实现JWTAuthenticationToken JWT身份验证令牌

null当我尝试做类似此处描述的事情时,我总是会遇到这样的情况:使用 Spring Security 进行单元测试

在服务测试中,到目前为止,我在测试中所做的是将主体传播到服务方法并使用mockito 来模拟主体。这非常简单。在端点测试中,我@WithMockUser在执行请求时使用填充主体,并模拟服务层。这样做的缺点是主要类型不同。

这是我的服务层测试类的样子:

@DataMongoTest
@Import({ProjectServiceImpl.class})
class ProjectServiceImplTest extends BaseServiceTest {

    @Autowired
    ProjectServiceImpl projectService;

    @Autowired
    ProjectRepository projectRepository;

    @Mock
    Principal principal;

    @Mock
    Principal principal2;

    @BeforeEach
    void …
Run Code Online (Sandbox Code Playgroud)

spring-security spring-boot spring-security-oauth2 spring-webflux

3
推荐指数
1
解决办法
8553
查看次数

Nanoc在github中部署页面时更改基本路径

我有一个简单的静态页面应用程序,我用nanoc构建,我想将其部署为github页面.

一切顺利,除了资产(如css,javascripts)和所有链接一般指向回购的根目录:

喜欢

/css/style.css

而不是

/docs/css/style.css

一切在localhost上运行良好但在发布时失败.

我正在使用rake发布将其推送到gh-pages.

这是我的Rakefile

require 'nanoc3/tasks'

BASE_URL = "http://darko1002001.github.com/docs/"

desc "Compile the site"
task :compile do
  `nanoc compile`
end

desc "Publish to http://documentation.getchute.com"
task :publish => [:clean] do
  FileUtils.rm_r('output') if File.exist?('output')

  sh "nanoc compile"

  ENV['GIT_DIR'] = File.expand_path(`git rev-parse --git-dir`.chomp)
  old_sha = `git rev-parse refs/remotes/origin/gh-pages`.chomp
  Dir.chdir('output') do
    ENV['GIT_INDEX_FILE'] = gif = '/tmp/dev.gh.i'
    ENV['GIT_WORK_TREE'] = Dir.pwd
    File.unlink(gif) if File.file?(gif)
    `git add -A`
    tsha = `git write-tree`.strip
    puts "Created tree   #{tsha}"
    if old_sha.size == 40
      csha = `echo …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails github nanoc github-pages

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

Android捕获广播接收器内的自定义架构链接

我目前正在做一个自定义方案intent-filter来从浏览器打开我自己的应用程序.

是否可以打开活动来启动广播接收器.

我目前的活动广播接收器代码是这样的:

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

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

            <data
                android:host="shortener.com"
                android:scheme="shortener" >
            </data>
        </intent-filter>
Run Code Online (Sandbox Code Playgroud)

这是我的接收器代码.不会触发.尝试了View操作和自定义操作

 <receiver android:name="MyReceiver" >
            <intent-filter>
                <action android:name="com.dg.action.CONFIGURE" >
                </action>
                <category android:name="android.intent.category.DEFAULT" >
                </category>
                <data
                    android:host="shortener.com"
                    android:scheme="shortener" >
                </data>
            </intent-filter>
        </receiver>
Run Code Online (Sandbox Code Playgroud)

android android-intent

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

java jackson parse包含泛型类型对象的对象

我有以下问题.

我必须将json请求解析为包含泛型类型字段的对象.

编辑

我已经使用常规类类型进行了一些测试(因此我在使用泛型替换之前使其工作).现在解析单个元素效果很好.

问题是当我需要从该类解析出一个列表对象时.

所以我必须以某种方式通知杰克逊我的T是类型列表而不是AlbumModel.

这是我尝试过的.

 @Override
    public ListResponseModel<AlbumModel> parse(String responseBody) throws Exception {
    JavaType type = mapper.getTypeFactory().constructParametricType(ResponseModel.class,
        AlbumModel.class);
    return mapper.readValue(responseBody,
        mapper.getTypeFactory().constructParametricType(ResponseModel.class, type));
    }
Run Code Online (Sandbox Code Playgroud)

但上面的代码不起作用.什么是这样的解决方案?

ListResponseModel中的我的泛型类型定义如下: List<T> data

成功如下:

public class BaseResponseModel<T> {

    @JsonProperty("data")
    private T data;

    @JsonProperty("paginations")
    private PaginationModel pagination;
}
Run Code Online (Sandbox Code Playgroud)

到目前为止,我有以下代码,但它始终解析为哈希.

public class ResponseParser extends BaseJacksonMapperResponseParser<ResponseModel<AlbumModel>> {

    public static final String TAG = ResponseParser.class.getSimpleName();

    @Override
    public ResponseModel<AlbumModel> parse(String responseBody) throws Exception {
        return mapper.readValue(responseBody,
                mapper.getTypeFactory().constructParametricType(ResponseModel.class, AlbumModel.class));
    }
}

public abstract class BaseJacksonMapperResponseParser<T> implements HttpResponseParser<T> {

    public static …
Run Code Online (Sandbox Code Playgroud)

java generics parsing json jackson

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