Android 6.0已經改變了管理SD卡安裝的方式,並且沒有讓顯示正確。Sdcard內容在DDMS文件瀏覽器中不可見Android 6.0
直到5.x的,我們可以在層次結構下獲得通過DDMS透視圖(Eclipse中)和SD卡內容
到/ mnt /殼/ ...
現在根據Documentation下
/SD卡/
我無法在DDMS下看到此目錄的任何內容,但在PC或其他應用程序(如Astro)中看不到任何內容。
我應該在Eclipse(DDMS)中設置哪些內容才能看到內容?
Android 6.0已經改變了管理SD卡安裝的方式,並且沒有讓顯示正確。Sdcard內容在DDMS文件瀏覽器中不可見Android 6.0
直到5.x的,我們可以在層次結構下獲得通過DDMS透視圖(Eclipse中)和SD卡內容
到/ mnt /殼/ ...
現在根據Documentation下
/SD卡/
我無法在DDMS下看到此目錄的任何內容,但在PC或其他應用程序(如Astro)中看不到任何內容。
我應該在Eclipse(DDMS)中設置哪些內容才能看到內容?
從Android 6.0開始,第三方應用程序無法查看SDCard內容。
在Android 6.0中,第三方應用程序無權訪問sdcard_r和 sdcard_rw GID。相反,通過僅爲該應用安裝合適的運行時視圖來控制訪問。使用每個人的GID阻止交叉用戶 交互。
https://source.android.com/devices/storage/
作爲附加信息,的Android 6.0引入Adoptable Storage和Runtime Permissions其上的相互作用加以限制與存儲設備的。
希望它可以幫助你。
更新
關於如何從DDMS可以訪問一個文件到Android 6.0。此操作是不允許的。如果您需要從您的應用程序訪問文件,您可以使用此源代碼示例:
@Override
protected void onCreate(Bundle savedInstanceState) {
mPermissions = new String[] { Manifest.permission.WRITE_EXTERNAL_STORAGE };
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
boolean isAllow = ContextCompat.checkSelfPermission(this, mPermissions[0]) == PackageManager.PERMISSION_GRANTED;
if (!isAllow) {
if (shouldShowRequestPermissionRationale(mPermissions[0])) {
// There is you need to display confirmation dialog about why you need to get this permission.
if (confirm("You need to copy database to device's storage") == YES) {
requestPermissions(mPermissions, REQUEST_CODE_ASK_PERMISSIONS)
} else {
// User does not agree with your requirements
// You should decide how the app will work in this case.
message("You can't use this app!");
finish();
}
return;
}
requestPermissions(mPermissions, REQUEST_CODE_ASK_PERMISSIONS);
}
} else {
runTheApp();
}
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
switch (requestCode) {
case REQUEST_CODE_ASK_PERMISSIONS:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
runTheApp();
} else {
message("You can't use this app!")
}
}
break;
case REJECT_CODE_PERMISSIONS:
break;
default:
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
}
這不回答問題吧?什麼纔是真正的解決方案? – Stan
嗨斯坦。請檢查我的更新。希望它可以幫助你。 –
我認爲這個問題不是關於文件訪問的編程問題,而是關於常見開發人員IDE中的糟糕「改進」,它現在無法從設備傳輸數據。當然,作爲開發者,我可以選擇自己開發adb文件管理器,作爲最後的手段,但這只是一個黑客,讓我相信谷歌瘋了。 – Stan