Reputation: 1171
My android app create an csv file and share it immediately as the below code. The app start properly but there is no file attached when i select anyone of the application to share it. please kindly help to solve this issue.
class MainActivity : AppCompatActivity() {
private val CSV_HEADER = "id,name,address,age"
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val qponFile = File.createTempFile("qpon", "csv")
var fileWriter: FileWriter? = null
try {
fileWriter = FileWriter("qpon.csv")
fileWriter.append(CSV_HEADER)
fileWriter.append('\n')
fileWriter.append("aaaaa")
fileWriter.append(',')
fileWriter.append("bbbbb")
fileWriter.append(',')
fileWriter.append("cccccc")
fileWriter.append(',')
fileWriter.append("dddddd")
fileWriter.append('\n')
println("Write CSV successfully!")
} catch (e: Exception) {
println("Writing CSV error!")
e.printStackTrace()
}
val sendIntent = Intent()
sendIntent.action = Intent.ACTION_SEND
sendIntent.putExtra(Intent.EXTRA_STREAM, qponFile)
sendIntent.type = "text/csv"
startActivity(Intent.createChooser(sendIntent, "SHARE"))
}
}
Image1,the app start properly.
Upvotes: 1
Views: 7116
Reputation: 1
val HEADER = "Name, DateTime"
var filename = "export.csv"
var path = getExternalFilesDir(null) //get file directory for this package
//(Android/data/.../files | ... is your app package)
//create fileOut object
var fileOut = File(path, filename)
//delete any file object with path and filename that already exists
fileOut.delete()
//create a new file
fileOut.createNewFile()
//append the header and a newline
fileOut.appendText(HEADER)
fileOut.appendText("\n")
// trying to append some data into csv file
fileOut.appendText("Haider, 12/01/2021")
fileOut.appendText("\n")
val sendIntent = Intent(Intent.ACTION_SEND)
sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(fileOut))
sendIntent.type = "text/csv"
startActivity(Intent.createChooser(sendIntent, "SHARE"))
Upvotes: 0
Reputation:
After writing to the file you must close it:
fileWriter.close()
and make this change: sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(qponFile))
Upvotes: 1