小编nne*_*rov的帖子

电报机器人.获取用户时区

为Telegram开发bot有没有办法获得用户时区?Message对象中的Date字段仅包含UNIX时间戳.我想创建机器人在订阅用户的固定时间发送一些消息.用户可以拥有不同的时区,我不想强​​迫用户在消息中明确地将他们的时区发送到机器人.

telegram telegram-bot

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

授予Uri允许其他活动

我正在尝试从设备库中获取图像,然后在另一个活动中显示它.我活动中的代码:

private void startGallery() {
    Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
    intent.addCategory(Intent.CATEGORY_OPENABLE);
    intent.setType("image/*");
    startActivityForResult(intent, REQ_OPEN_GALLERY)
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == REQ_OPEN_GALLERY &&  resultCode == Activity.RESULT_OK) {
        Uri imageUri = data.getData()
        // here I save image uri to pass to another activity
    }
}
Run Code Online (Sandbox Code Playgroud)

当我尝试在另一项活动中打开uri时,我得到了SecurityException.Docs表示,获得uri的许可将持续到收到它们的活动完成为止.所以当我的活动结束时,我没有读取文件的权限.

是否有某种方法可以延长uri的许可,允许其他活动通过此uri打开文件?或者唯一的方法是将图像复制到本地应用程序存储?

UPD:我的目标是将收到的uri保存在本地数据库中,并允许其他活动和服务读取此文件.

android android-permissions

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

从 kotlin 代码中删除 getter 和 setter

对于此代码

class Foo {
    var name: String? = null
}
Run Code Online (Sandbox Code Playgroud)

kotlin 编译器生成:

private String name;
public final String getName() { ... }
public final void setName(String name) { ... }
Run Code Online (Sandbox Code Playgroud)

即使属性name没有自定义的 getter 或 setter。可以使用@JvmField注释删除多余的 get 和 set 方法。所以这段代码

class Foo {
    @JvmField
    var name: String? = null
}
Run Code Online (Sandbox Code Playgroud)

仅生成一个字段,无需其他方法。

public String name;
Run Code Online (Sandbox Code Playgroud)

但是有没有办法让 kotlin 编译器不为整个项目中的所有属性生成 getter 和 setter?不管它有没有注解。也许一些实验性的编译器标志?

我想要它,因为我有在 kotlin 上编写的 android 仪器测试。测试 apk 超过 65k 方法计数限制。大约 2k 个方法是生成 getter/setter 的。由于 android 构建系统中的一些错误,我无法使用 proguard …

android kotlin android-testing

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

壁画。如何在不加载完整位图的情况下获取图像大小

我有一些尺寸未知的本地图片。格式为jpeg。该任务将调整其大小以适合最大尺寸1280x960,并保持原始宽高比,并以低内存消耗将其保存到新文件。我在Fresco lib中发现了一个非常有用的方法:JpegTranscoder.transcodeJpeg()操作流。它具有限制scaleNumerator下采样的参数。如何在没有将完整位图加载到内存中以计算scaleNumerator值的情况下使用Fresco获取原始位图大小?像Android BitmapFactory.Options类中的inJustDecodeBounds之类的东西

android fresco

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