从 Intent 中获取结果

Posted

技术标签:

【中文标题】从 Intent 中获取结果【英文标题】:Get result from an Intent 【发布时间】:2021-12-13 16:18:27 【问题描述】:

我想用 registerForActivityResult 检查 ACTION_MANAGE_OVERLAY_PERMISSION 而这段代码不起作用,当我检查权限时,没有出现 Toast “Ok”

mStartForResult.launch(new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION));

ActivityResultLauncher<Intent> mStartForResult = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(),
            new ActivityResultCallback<ActivityResult>() 
                @Override
                public void onActivityResult(ActivityResult result) 
                    if (result.getResultCode() == Activity.RESULT_OK) 
                        Toast.makeText(MainActivity.this,"Ok",Toast.LENGTH_SHORT).show();
                    
                
            );```

【问题讨论】:

【参考方案1】:

那个Intent 动作is not documented to return anything。所以,你永远不会得到Activity.RESULT_OK

【讨论】:

那么我怎么知道权限是否被检查? @dani:大概是打电话给canDrawOverlays() 好的,我会试试的。 它工作,谢谢。

以上是关于从 Intent 中获取结果的主要内容,如果未能解决你的问题,请参考以下文章

从通知中获取 PendingIntent 结果到目标活动中

活动结果相机意图在三星 s4 中返回 null

未能在活动结果上交付结果

Android基础利用Intent在Activity之间传递数据

发送失败结果ResultInfo {who = null,request = 1,result = -1,data = Intent {dat = content://com.android.cont

android 判断文件是不是为txt文本文件,不是通过后缀来判断