Printing via Google Cloud Print

I am trying to print a .txt file that saves my application through FileWriter.

The file it saves is / sdcard / StudentLatePass.txt

When you press the print button, the SD file is saved and then it needs to be printed. I am following the Google Cloud Printing Tutorial .

package com.android.upgrayeddapps.latepass; import java.io.File; import java.io.FileOutputStream; import java.io.OutputStreamWriter; import android.app.Activity; import android.app.AlertDialog; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.widget.EditText; import android.widget.Button; import android.widget.Toast; public class StudentActivity extends Activity { EditText txtData; Button btnPrintTardy; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.student); //Displays the Custom dialog for student login AlertDialog.Builder builder; AlertDialog alertDialog; Context mContext = this; LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(LAYOUT_INFLATER_SERVICE) ; View layout = inflater.inflate(R.layout.studentlogin, null); builder = new AlertDialog.Builder(mContext); builder.setView(layout); alertDialog = builder.create(); alertDialog.show(); txtData = (EditText) findViewById(R.id.editText1); btnPrintTardy = (Button) findViewById(R.id.btnPrintTardy); btnPrintTardy.setOnClickListener(new OnClickListener() { public void onClick(View v) { // write on SD card file data in the text box try { File myFile = new File("/sdcard/StudentLatePass.txt"); myFile.createNewFile(); FileOutputStream fOut = new FileOutputStream(myFile); OutputStreamWriter myOutWriter = new OutputStreamWriter(fOut); myOutWriter.append(txtData.getText()); myOutWriter.close(); fOut.close(); Toast.makeText(getBaseContext(), "Done writing SD 'StudentLatePass.txt'", Toast.LENGTH_SHORT).show(); } catch (Exception e) { Toast.makeText(getBaseContext(), e.getMessage(), Toast.LENGTH_SHORT).show(); } }// onClick }); // btnWriteSDFile btnPrintTardy.setOnClickListener(new OnClickListener() { public void onClick(View v) { //Print using Google Cloud Print Intent printIntent = new Intent(this, PrintDialogActivity.class); printIntent.setDataAndType(docUri, "text/plain"); printIntent.putExtra("title", "Student Late Pass"); startActivity(printIntent); }// onClick });// btnPrintSDFile } // Clear all activities on the top of the stack and deliver the intent to (on top now) MainActivity with a new Intent public void onGotoLatePassActiviy(View View) { Intent intent = new Intent(View.getContext(), LatePassActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); StudentActivity.this.finish(); } } 

Over the course of my life, I tried to change docUri, docMimeType, and docTitle to everything under the sun to print this file.

My current modified code

 btnPrintTardy.setOnClickListener(new OnClickListener() { public void onClick(View v) { //Print using Google Cloud Print Intent printIntent = new Intent(this, PrintDialogActivity.class); printIntent.setDataAndType(docUri, "text/plain"); printIntent.putExtra("title", "Student Late Pass"); startActivity(printIntent); }// onClick });// btnPrintSDFile 

I still get red squigglies under docUri, and when I pass the print intent

+6
source share
1 answer

Try this and see what happens:

Intent printIntent = new Intent(StudentActivity.this, PrintDialogActivity.class);

This should enable the first "red squigglies".


Here is what you could try for a problem with a URI.

 File file = new File("/sdcard/StudentLatePass.txt"); intent.setDataAndType(Uri.fromFile(file), "text/*"); 
+6
source

Source: https://habr.com/ru/post/911874/


All Articles