小编Ioa*_*dze的帖子

检查方法中的Android权限

这是我的代码,它工作得非常好.

if (ActivityCompat.checkSelfPermission(activity, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED || ActivityCompat.checkSelfPermission(activity, Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
    mMap.setMyLocationEnabled(true);
}
Run Code Online (Sandbox Code Playgroud)

但我不喜欢每次检查都有这么大的代码,并希望将它委托给我的实用程序类中的方法.

if (Utils.hasMapLocationPermissions(getActivity())) {
    mMap.setMyLocationEnabled(true);
}
Run Code Online (Sandbox Code Playgroud)

但是setMyLocationEnabled有注释@RequiresPermission因此我不能将它委托给一个方法,因为linteditor将它显示为一个错误.

是否有一些注释要写在我的实用工具方法上并抑制lint?

像这样的东西

@ChecksPermission
public boolean hasMapLocationPermissions(Activity activity) {
  return // my checking logic..
}
Run Code Online (Sandbox Code Playgroud)

android annotations coding-style lint error-suppression

18
推荐指数
2
解决办法
3439
查看次数

引用Array与对数组指针的引用

void check(void* elemAddr){
    char* word = *((char**)elemAddr);
    printf("word is %s\n",word);
}

int main(){
    char array[10] = {'j','o','h','n'};
    char * bla = array;
    check(&bla);
    check(&array);
}
Run Code Online (Sandbox Code Playgroud)

输出:

word is john

RUN FINISHED; Segmentation fault; core dumped;
Run Code Online (Sandbox Code Playgroud)

第一个工作,但第二个不工作.我不明白为什么会这样.

c arrays pointers

14
推荐指数
2
解决办法
1523
查看次数

Android Jetpack Paging 3:带 Room 的 PagingSource

我正在使用最新的 Jetpack 库。
Pagination3 版本:3.0.0-alpha05
房间版本:2.3.0-alpha02

我的实体有 Long asPrimaryKey和 Room 可以PagingSource为其他Int类型生成。

error: For now, Room only supports PagingSource with Key of type Int.
    public abstract androidx.paging.PagingSource<java.lang.Long, com.example.myEntity>` getPagingSource();
Run Code Online (Sandbox Code Playgroud)

因此,我尝试实现我的 custom PagingSource,就像文档建议的那样。

问题是Data Refresh,因为 Room 生成的代码处理数据刷新,而我的代码无法处理这种情况。

任何建议如何实现自定义PagingSourceRoom,也负责处理Data Refresh

android android-room android-paging android-paging-library android-paging-3

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

不推荐使用Plus.PeopleApi.load

现在Plus.API已经弃用了Google Play Services 9.4,在Android应用程序上为经过身份验证的用户获取Google Plus圈子的正确方法是什么?

现在我们已经弃用了加载方法加上用户Plus.PeopleApi.load

新文件说:

如果您的应用需要社交信息和更广泛的个人资料数据,请查看Android联系人提供程序或跨平台的People API.

所以我应该使用Android Contacts Provider,这似乎是一个很难的选择(因为我必须使用游标过滤联系人并管理运行时权限).

以前弃用方法的任何简单替代方法只是为用户获取G +圈子列表?

android google-plus google-signin google-people

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