小编Rus*_*hts的帖子

targetSdkVersion 30 的 ActivityCompat.requestPermissions 不起作用

我有以下权限:

private static final String[] LOCATION_PERMISSIONS = {
            Manifest.permission.ACCESS_FINE_LOCATION,
            Manifest.permission.ACCESS_BACKGROUND_LOCATION,
            Manifest.permission.ACCESS_COARSE_LOCATION,
};
Run Code Online (Sandbox Code Playgroud)

我尝试使用以下行在我的代码中请求权限(活动是我当前的活动引用):

ActivityCompat.requestPermissions(activity, LOCATION_PERMISSIONS, 1);
Run Code Online (Sandbox Code Playgroud)

如果targetSdkVersion 29我的 build.gradle 文件中有或更低,一切正常。权限对话框出现,我可以按下按钮来授予权限。一切都很好

但!在我将目标 sdk 更改为 Android 11 后:targetSdkVersion 30此功能停止工作。权限系统对话框未出现 - 我无法为我的应用授予位置权限。

那么有人可以帮助我吗?我怎么了?我应该在代码中更改哪些内容 - 以正确使用 Android 11?

现在targetSdkVersion 29我也可以在 android 11 模拟器下运行我的应用程序。可能我根本不应该将目标 sdk 版本增加到:30?


解决办法是:

第 1 步:应用程序应请求前台位置权限:

private static final String[] FOREGROUND_LOCATION_PERMISSIONS = {
            Manifest.permission.ACCESS_FINE_LOCATION,       // GPS
            Manifest.permission.ACCESS_COARSE_LOCATION,     // GPS approximate location
    };
Run Code Online (Sandbox Code Playgroud)

第 2 步:应用程序应请求后台位置权限:

@RequiresApi(api = Build.VERSION_CODES.Q)
    private static final String[] BACKGROUND_LOCATION_PERMISSIONS = { …
Run Code Online (Sandbox Code Playgroud)

android targetsdkversion

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

setRetainInstance 已弃用。什么是替代方案?

setRetainInstance 已弃用。还有什么选择?

我有很多片段,里面有很多复杂的对象变量。今天我只有一行代码:setRetainInstance. 完整代码示例如下:

public class MyFragment extends Fragment{
    private MyComplicatedCustomClass1 object1;
    private MyComplicatedCustomClass2 object2;
    private MyComplicatedCustomClass3 object3;

    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);        
        setRetainInstance(true);
    }
}
Run Code Online (Sandbox Code Playgroud)

这足以让我在更改配置时(例如,更改屏幕旋转时)忘记保存和恢复对象。

我应该在代码中更改什么来替换setRetainInstance

如果可能的话,请给我一个简短的代码示例。

聚苯乙烯

注意: 我可以阅读文档 - 所以请不要以 Google 风格的方式回答:“ViewModel 是最好的...google 推荐...以及 bla-bla...”。并且请不要复制/粘贴 Google 文档中的文章 - 我可以自己查看。

如果您有具体的工作代码解决方案 - 我将非常感激。

android deprecated

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

标签 统计

android ×2

deprecated ×1

targetsdkversion ×1