【Android笔记】Android 9.0 SD卡读写权限问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了【Android笔记】Android 9.0 SD卡读写权限问题相关的知识,希望对你有一定的参考价值。
参考技术A android 9.0 SD卡权限管理更为严格,在项目测试中遇到以下问题:[步骤]
1.在图库中删除T卡上的图片或者视频,在文件管理中查看还存在
2.在视频应用中删除视频情况一样
[备注]重启手机后,再次进入图库重新加载进来
跟踪调试发现,是SD卡写权限被禁,用户无法对SD卡内容进行操作。
原文分析
https://blog.csdn.net/shift_wwx/article/details/85633801
修改方法:
增加-w 权限,下面第二个加上去的。
alps_p0_mp2\update\alps\system\vold\model\PublicVolume.cpp
if (!(mFusePid = fork()))
if (getMountFlags() & MountFlags::kPrimary)
if (execl(kFusePath, kFusePath,
"-u", "1023", // AID_MEDIA_RW
"-g", "1023", // AID_MEDIA_RW
"-U", std::to_string(getMountUserId()).c_str(),
"-w",
mRawPath.c_str(),
stableName.c_str(),
NULL))
PLOG(ERROR) << "Failed to exec";
else
if (execl(kFusePath, kFusePath,
"-u", "1023", // AID_MEDIA_RW
"-g", "1023", // AID_MEDIA_RW
"-U", std::to_string(getMountUserId()).c_str(),
"-w",//add by for add sdcard permission 就是这样
mRawPath.c_str(),
stableName.c_str(),
NULL))
PLOG(ERROR) << "Failed to exec";
这样操作之后SD卡就有了写权限,用户可以对SD卡中数据进行操作。
Android笔记:Button
示例代码摘自《第一行代码》
ButtonDemo.java的代码:
public class ButtonDemo extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.demo_button);
Button button1 = (Button) findViewById(R.id.button_1); //加载按钮
button1.setOnClickListener(new OnClickListener() { //注册监听事件
@Override
public void onClick(View v) {
Toast.makeText(ButtonDemo.this, "You clicked Button 1",
Toast.LENGTH_SHORT).show(); //弹出消息
}
});
}
}
Layout的demo_button.xml:
<Button android:id="@+id/button_1" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Button 1" />
效果如下所示:
以上是关于【Android笔记】Android 9.0 SD卡读写权限问题的主要内容,如果未能解决你的问题,请参考以下文章
Android 9.0/P(android p指安卓9.0版本) okhttp3网络请求出错
Android 9.0/P(android p指安卓9.0版本) okhttp3网络请求出错
为啥 Android Studio 不会在 Android Pie (9.0) 上运行应用程序?
AdapterView 不支持 Android 8.1/9.0 removeView(View)