Android 如何从原始资源获取uri
我的原始文件夹中有一个.txt文件。我想获取文件的uri并创建一个新文件以上载到firebase 这个想法很简单Android 如何从原始资源获取uri,android,firebase,firebase-storage,Android,Firebase,Firebase Storage,我的原始文件夹中有一个.txt文件。我想获取文件的uri并创建一个新文件以上载到firebase 这个想法很简单 从我的res/raw资源中获取txt文件 将其上载到firebase存储 我已经做到了这一点 String path = "android.resource://" + getPackageName() + "/" + "raw/grupos.txt"; Uri file = Uri.fromFile(new File(path)); riversRef.putFile(fi
String path = "android.resource://" + getPackageName() + "/" + "raw/grupos.txt";
Uri file = Uri.fromFile(new File(path));
riversRef.putFile(file)
.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {....
但是当我打电话时
String path = "android.resource://" + getPackageName() + "/" + "raw/grupos.txt";
Uri file = Uri.fromFile(new File(path));
riversRef.putFile(file)
.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {....
riversRef.putFile(文件)
.addOnSuccessListener(新OnSuccessListener(){。。。。
表示该文件无效
String path = "android.resource://" + getPackageName() + "/" + "raw/grupos.txt";
Uri file = Uri.fromFile(new File(path));
riversRef.putFile(file)
.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {....
LOGCAT
java.io.FileNotFoundException:
/android.resource:/com.example.usuario.ottasubirarchivos/raw/grupos.txt:
打开失败:enoint(没有这样的文件或目录)
我不知道我是否需要获取资源文件的路径,在内部存储器中创建新文件,获取该文件并将其上载到firebase,或者使用stream…我不知道如何处理此问题…谢谢您有此功能吗?
我可以通过以下方式访问原始资源:
Android.Net.Uri.Parse(“Android.resource://“+ApplicationContext.PackageName+”/“+resource.raw.beep)
文件
beep.ogg
位于Resources/raw
目录下。我在这里注意到的是:raw
中的大写字母、Resource
和not ResourceS
以及我路径中的无扩展名。正如Commonware在注释中指出的那样,您没有文件,但是它的Uri直接解析它你可以用这个:
public class UriUtils {
public static Uri getUriToResource(@NonNull Context context, @AnyRes int resId) throws Resources.NotFoundException {
Resources res = context.getResources();
Uri resUri = Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE +
"://" + res.getResourcePackageName(resId)
+ '/' + res.getResourceTypeName(resId)
+ '/' + res.getResourceEntryName(resId));
return resUri;
}
}
String path=“android.resource://”+getPackageName()+“/”+“.txt”+“raw/grupos.txt”之类的东西?我试过了,但不起作用。您试过了:
Uri.fromFile()
仅适用于文件系统路径。使用Uri.parse()
解析已经是Uri
的内容。