intent.putExtra("uri", uri) 傳遞 Uri 對象,另一端 getString("uri") 取不到值。
Uri 實現了 Parcelable,需用 getParcelableExtra 取回;若用 putExtra(String, String) 則自動調用 toString()。
// 發送
intent.putExtra("uri", uri.toString());
// 接收
String uriStr = getIntent().getStringExtra("uri");
Uri uri = Uri.parse(uriStr);
// 發送
intent.putExtra("uri", uri); // Uri 實現 Parcelable
// 接收
Uri uri = getIntent().getParcelableExtra("uri");
Uri.parse 能正確處理 content://、file://、https:// 等 scheme。