作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
特别是@Muntashir Akon,我来自“Down Under”,请抽出时间。
众所周知,startActivityForResult
已已弃用,感谢 google。我们如何从相机中获取结果……这是我的代码 intentData
总是返回 null。请帮助这让我发疯。
我可能使用了错误的调用者,但我似乎无法在互联网上找到任何东西
对于@Muntashir Akon,真正的来电者是你的...
protected final RegisterActivityResultHelper<Intent,
ActivityResult> activityLauncher =
RegisterActivityResultHelper.registerActivityForResult(
this );
RegisterActivityForResult
ActivityResultLauncher activityResultLauncher =
registerForActivityResult( new ActivityResultContracts.StartActivityForResult(),
new ActivityResultCallback()
{
@Override
public void onActivityResult( Object result )
{
}
});
/////////////////////////////////////////////////////////////////////////////////////
private void takePhoto()
{
String uuid = UUID.randomUUID().toString();
File outputDir = getCacheDir();
File file;
try
{
file = File.createTempFile( uuid, ".jpg", outputDir );
}
catch( IOException e )
{
return;
}
Intent intent = new Intent( android.provider.MediaStore.ACTION_IMAGE_CAPTURE );
Uri uri;
try
{
uri = FileProvider.getUriForFile( Objects.requireNonNull(
getApplicationContext()),
BuildConfig.APPLICATION_ID + ".fileProvider", file );
}
catch( IllegalArgumentException e )
{
return;
}
intent.putExtra( MediaStore.EXTRA_OUTPUT, uri );
activityLauncher.launch( intent );
activityLauncher.setOnActivityResult( result ->
{
if( result.getResultCode() == RESULT_CANCELED )
return;
Intent intentData = result.getData();
if( intentData == null )
{
return;
}
Uri imageUri = intentData.getData();
Bundle bundle = intentData.getExtras();
Log.e("URI",imageUri.toString());
Bitmap bmp = ( Bitmap ) bundle.get( "data" );
} );
}
最佳答案
好的,我有答案了,希望对大家有帮助
启动器...
/////////////////////////////////////////////////////////////////
ActivityResultLauncher<Uri> takeAPhoto = registerForActivityResult(
new ActivityResultContracts.TakePicture(), result ->
{
if( !result )
return;
Helpers.loadPicIntoGlide( ivItemImage, photoTakenUri );
etImageName.setText( photoTakenUri.getPath() );
} );
来电者...
/////////////////////////////////////////////////////////////////////////////////////
private void takePhoto()
{
String uuid = UUID.randomUUID().toString();
File outputDir = getCacheDir();
File file;
try
{
file = File.createTempFile( uuid, ".jpg", outputDir );
}
catch( IOException e )
{
return;
}
try
{
photoTakenUri = FileProvider.getUriForFile( Objects.requireNonNull(
getApplicationContext()),
BuildConfig.APPLICATION_ID + ".fileProvider", file );
}
catch( IllegalArgumentException e )
{
return;
}
takeAPhoto.launch( photoTakenUri );
}
////////////////////////////////////////////////////////////////////////
关于java - registerActivityForResult 从相机获取结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69068890/
特别是@Muntashir Akon,我来自“Down Under”,请抽出时间。 众所周知,startActivityForResult 已已弃用,感谢 google。我们如何从相机中获取结果……这
我是一名优秀的程序员,十分优秀!