我想保存 Whatsapp 的状态。通过使用此代码,我可以保存图像
public void saveImage(Bitmap bitmap, String name) {
OutputStream fileOutputStream;
Uri imageUri;
try {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
ContentResolver contentResolver = context.getApplicationContext().getContentResolver();
ContentValues contentValues = new ContentValues();
contentValues.put(MediaStore.MediaColumns.DISPLAY_NAME, "" + name);
contentValues.put(MediaStore.MediaColumns.MIME_TYPE, "image/jpg");
contentValues.put(MediaStore.MediaColumns.RELATIVE_PATH, Environment.DIRECTORY_DCIM + "/V Troid/WhatsApp");
imageUri = contentResolver.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, contentValues);
fileOutputStream = (FileOutputStream) contentResolver.openOutputStream(Objects.requireNonNull(imageUri));
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fileOutputStream);
Objects.requireNonNull(fileOutputStream);
Toast.makeText(context.getApplicationContext(), "Image Saved", Toast.LENGTH_SHORT).show();
}
} catch (Exception e) {
Toast.makeText(context.getApplicationContext(), "Error \n" + e, Toast.LENGTH_SHORT).show();
}
}
Run Code Online (Sandbox Code Playgroud)
但现在我也想保存视频文件,为此我正在使用此代码,但它对我不起作用,此代码损坏后我得到的文件
public void saveVideo(String name, Uri vidUri) {
OutputStream …Run Code Online (Sandbox Code Playgroud) 最近,Google 已弃用直接使用setSystemUIVisibilityView 类中的方法并向其传递标志来设置系统 UI 可见性。
我找不到它的源代码,因为它尚未公开发布。你们知道我如何在不使用这种方法的情况下实现全屏显示吗?
我想在 android 11 的 ActivityResultCallback 中从 uri 创建一个文件。我用它uri.getPath()来将传入的 uri 转换为文件。但是,它在 android 11 中不起作用。这是我的代码:
private void launchGallery (){
Intent intent = new Intent(Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
launcherGallery.launch(intent);
}
ActivityResultLauncher<Intent> launcherGallery = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(),
result -> {
if (result.getResultCode() == RESULT_OK) {
Intent data = result.getData();
if (data != null) {
Uri imageUri = data.getData();
// ---> getPath() won't work in android 11 <---
File file = new File(imageUri.getPath());
// I don't want to display the image in an ImageView.
// I …Run Code Online (Sandbox Code Playgroud) 我正在尝试扩展复制/粘贴菜单以在我的应用程序中打开特定活动。
问题是,我的应用程序出现在某些应用程序中,而大多数应用程序中则没有。
AndroidManifest.xml:
<manifest ....>
<queries>
<intent>
<action android:name="android.intent.action.PROCESS_TEXT" />
<data android:mimeType="text/plain" />
</intent>
<intent>
<action android:name="android.intent.action.SEND" />
<data android:mimeType="text/plain" />
</intent>
<intent>
<action android:name="android.intent.action.VIEW" />
<data android:mimeType="text/plain"/>
</intent>
</queries>
<application ...>
<activity
android:name=".component.popupActivity.PopUpActivity"
android:exported="true"
android:theme="@style/Theme.Transparent.SemiBlack">
<intent-filter>
<action android:name="android.intent.action.PROCESS_TEXT" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/plain" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/plain" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="http" />
<data android:scheme="https" />
<data android:mimeType="text/html"/>
<data android:mimeType="text/plain"/>
<data android:mimeType="application/xhtml+xml"/> …Run Code Online (Sandbox Code Playgroud) 我在调用时收到此异常MediaStore.createWriteRequest(contentResolver, uris)。与 Anrdroid Q 及以上版本一样,我们必须使用 createWriteRequest 来写入存储。所以我正在尝试以下代码并得到异常。
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
List<Uri> uris = new ArrayList<>();
uris.add(mediaUri);
MediaStore.createWriteRequest(contentResolver, uris);
//code
}
Run Code Online (Sandbox Code Playgroud) android ×5
android-11 ×5
android-10.0 ×1
file ×1
java ×1
mediastore ×1
popupmenu ×1
storage ×1
uri ×1