小编Pas*_*cal的帖子

Android联系人照片:如何从网上取回(Google)联系人图片(以及'取消'以前的本地图片更改)

我是唯一一个试图实现这一目标的人......:/?


简而言之:

我想取回我的联系人的图片,因为他们自己定义了(例如在他们自己的Google帐户页面上).

使用案例:我自己修改了一个联系人的图片,现在,我想要撤消这个更改 - >我想'取回'我的联系人的谷歌图片(由他/她自己设置).


我有一个管理Google通讯录的应用.它还使用管理联系人照片

ContactsContract.CommonDataKinds.Photo.PHOTO

它工作正常.

这是我想支持的场景:

  1. 我在我的联系人列表中添加了一个新联系人,输入了它的gmail地址.(好)
  2. 过了一会儿,联系人照片可以在我的联系人应用程序上找到(因为联系人在其Google帐户上有一张图片,并且Android设备上的联系人同步已开启).(好)
  3. 在我的应用程序中,我更改了应用程序联系人图片(所以,我'覆盖'联系人图片)(确定)
  4. 在我的应用程序中,我想要恢复默认的Google联系人图片:不行.我怎样才能做到这一点?

请在这里查看我的代码来设置照片.我应该"清除"照片并依靠ContactProvider从Google帐户下载用户照片吗?

如何清除照片.将ContactsContract.CommonDataKinds.Photo.PHOTO设置为'null'?并删除相关文件,即

Uri rawContactPhotoUri = Uri.withAppendedPath(ContentUris.withAppendedId(RawContacts.CONTENT_URI, rawContactId), RawContacts.DisplayPhoto.CONTENT_DIRECTORY)
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助.

以下是我更新图片的方式:

    private void updatePhotoThumbnail(Bitmap bitmap, Contact contact) throws Exception
    {
        byte[] contactPhotoBytes = getContactPhotoBytes(bitmap);

        ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();

        // @formatter:off
        String where =     ContactsContract.RawContacts.ACCOUNT_NAME + "= ? "
                + "AND " + ContactsContract.RawContacts.ACCOUNT_TYPE + "= ? "
                + "AND " + ContactsContract.Data.CONTACT_ID + "= ? "
                + "AND " + ContactsContract.Data.RAW_CONTACT_ID + "= ? …
Run Code Online (Sandbox Code Playgroud)

android contactscontract

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

Android Browser.BOOKMARKS_URI不适用于所有设备.如何找出给定设备的正确uri?

我正在尝试在我的应用中使用Android Browser.BOOKMARKS_URI到CRUD设备书签(https://play.google.com/store/apps/details?id=com.elementique.web)

它在大多数设备上工作正常,但在某些设备上不起作用:-(

在这些设备上,试图使用书签导致

java.lang.IllegalArgumentException: Unknown URL content://browser/bookmarks
Run Code Online (Sandbox Code Playgroud)

我现在明白Boookmark Uri可能与AOSP默认值不同(即"content:// browser/bookmarks").

题:

如何为给定设备获取正确的Bookmark Uri

我已经"收集"了以下URI

private static final Uri BOKKMARKS_DEFAULT = Browser.BOOKMARKS_URI; // = Uri.parse("content://browser/bookmarks")
private static final Uri BOKKMARKS_URI_CHROME = Uri.parse("content://com.android.chrome.browser/bookmarks");
private static final Uri BOKKMARKS_URI_SAMSUNG_S_ = Uri.parse("content://com.sec.android.app.sbrowser.browser/bookmarks");
Run Code Online (Sandbox Code Playgroud)

这是一种在设备上"列出"所有可用内容URI(内容:// ...)的方法吗?如果是,我可以列出它们并搜索"/ bookmarks"字符串的出现并尝试使用此URI.

注意:

我目前正在创建一个回退机制,如果应用程序无法获得"工作"书签URI(即我自己的书签数据库,因为我在我的应用程序中需要书签功能)

android bookmarks android-browser android-contentprovider

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

发布Android应用程序 - 区分APK详细信息 - "native platform"= none?

编辑:

根据Per @marbarfa的回答,这似乎与第三方图书馆有关.阅读他的回答和评论以获得完整的解释.

谢谢marbarfa!


使用新的Google Play开发者控制台,我面临一个奇怪的情况:我最近切换到Facefbook的壁画图像加载库,这可能解释了我的问题.

(这里可能有类似的问题:谷歌播放,发布应用更新,问题'原生平台')

在将beta版本升级到生产的框架中,我遇到了这样的问题:

在新的Google Play控制台上,在发布管理/应用程序版本下,在"新版本到生产(从Beta 2.2.0推广)"中,我看到了这一点

"原生平台"的价值从arm64-v8a,armeabi,armeabi-v7a,x86,x86_64变为零!

Google Play控制台页面代码摘录为"之前的APK":

Differentiating APK details
Native platforms

arm64-v8a, armeabi, armeabi-v7a, x86, x86_64
Run Code Online (Sandbox Code Playgroud)

谷歌Play控制台页面代码摘录为"新APK"(与Facebook的壁画的Beta版):

Differentiating APK details
Native platforms

none
Run Code Online (Sandbox Code Playgroud)

我更新了我的所有(10!)应用程序,它似乎没问题(支持的设备数量是相同的,即11434),但是,我仍然不清楚不明白究竟发生了什么.

有人可以解释一下吗?

谢谢!

android android-manifest developer-console

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

如何从 Android 应用程序发送和接收 RCS(丰富通信服务)消息?

谷歌正在其消息应用程序中推广和使用RCS。 因此,第三方短信应用程序支持 RCS 是件好事(强制?)。

我开发了一个短信应用程序,有时我会在其中“遇到”RCS 消息。
我的应用程序无法接收 RCS 消息,但有时,以前的应用程序确实收到了其中一些消息(例如:Google Message App),因此我的应用程序在 Android SMS DB 中“查找”这些“旧 RCS 消息”。

我的应用程序能够读取这些(至少是基本的)旧消息,但是**我不知道如何回复这些消息**。

我的应用程序基于android-smsmms 库,我找到了有关此 RCS 问题的一些信息(2020):

总结一下:

  • 第三方应用程序目前无法支持 RCS。
  • 在 Google 提供 API 或在 Android 中构建 RCS 支持之前,第三方应用程序将无法使用它。
  • 您可以简单地禁用 RCS(或“高级消息传递”)

源代码:https ://web.archive.org/web/20201111221326/https://github.com/maplemedia/pulse-sms-issues/issues/143

搜索 RCS 库时,除了一个未维护的旧库rcsjta之外什么也没找到


问题:

注意:
以下是我已经研究过的一些与此相关的问题:

sms android rich-communications-services

7
推荐指数
0
解决办法
664
查看次数

在华为设备上设置默认 Android 启动器?

我的目标是将我的应用程序设置为华为设备上的默认启动器。

1 - 说明:

1.1 - 当前情况:

我已经能够:

  • 检查我的应用程序是否是默认启动器
  • 显示“启动器选择器”(使用“使用一次”/“始终”选项)

这一切正常......除了在华为设备上!

在我看来,华为的 Android 风格并没有正确地“尊重”“ACTION_MANAGE_DEFAULT_APPS_SETTINGS”意图行动合同。

// this displays the list of default apps on all tested devices, except on Huawei devices!
// instead, it does display apps permissions, app links and apps'advanced settings
intent.setAction(Settings.ACTION_MANAGE_DEFAULT_APPS_SETTINGS);
activity.startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

作为 B 计划,我可以使用以下方式显示“应用程序和通知”设置“页面”:

String packageName = "com.android.settings";
String className = "Settings$AppAndNotificationDashboardActivity";
intent.setClassName(packageName, packageName + "." + className);
activity.startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

因此用户可以从那里导航,按下以下菜单项序列:

  • -> 高级参数(可扩展菜单项:平板电脑上不存在,也不确定手机上是否存在)
  • -> 默认应用
  • -> 默认启动器

这需要我想避免的 2 或 3 个步骤。

1.2 - 这可以改进!

I found …

android android-intent huawei-mobile-services

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

Android - 如何从 apk 中提取针对一种特定区域/语言的资源

编辑:

请参阅下面我的回答:apktool可以完成这项工作。


编辑:

汉诺·宾德评论:

显然,-c 选项仅在打包资源时有效,而不是在提取资源时有效。


我尝试使用“aapt”工具从 apk 中提取 fr 字符串。

我能够获得这样的所有资源:

.\android-sdks\build-tools\23.0.2\aapt.exe d --values 资源 my.apk > 资源。所有.txt

我只想获取给定区域设置的资源,例如 fr(法语)。关于这一点,aapt 文档指出:

   -c  specify which configurations to include.  The default is all
       configurations.  The value of the parameter should be a comma
       separated list of configuration values.  Locales should be specified
       as either a language or language-region pair.  Some examples:
            en
            port,en
            port,land,en_US
Run Code Online (Sandbox Code Playgroud)

所以我尝试了

.\android-sdks\build-tools\23.0.2\aapt.exe d -c fr --values 资源 my.apk > 资源。fr.txt …

resources android internationalization apk

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

此应用程序没有 /error 的显式映射,因此您将其视为后备。- Spring Boot - JSP

我是 Spring Boot 的新手,尝试使用 JSP 和 Spring Boot 构建一个 Web 应用程序,但出现了我已准确给出路径的回退错误。

请参考以下链接。我在其中创建了 WEb_INF 和路径 https://drive.google.com/file/d/1-qkoy49zIZe-Y6-zPeAn9g2aRGaDHt01/view?usp=sharing

文件CustomerContoller.java

package com.javabrains.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping("/customer")
public class CustomerController {

    public String hello(ModelMap Model) {
        return "list";
    }
}
Run Code Online (Sandbox Code Playgroud)

文件application.properties

spring.mvc.view.prefix: /WEB-INF/jsp/
spring.mvc.view.suffix: .jsp
Run Code Online (Sandbox Code Playgroud)

文件pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.8.RELEASE</version>
        <relativePath/> <!-- Look up parent from repository -->
    </parent>
    <groupId>com.javabrains</groupId>
    <artifactId>javabrains</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>WebDemo</name>
    <description>Demo project for Spring Boot</description>

    <properties> …
Run Code Online (Sandbox Code Playgroud)

spring jsp tomcat spring-mvc spring-boot

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