diff --git a/packages/PrintSpooler/res/values/strings.xml b/packages/PrintSpooler/res/values/strings.xml
index 2836adb9830ee..13429452022bd 100644
--- a/packages/PrintSpooler/res/values/strings.xml
+++ b/packages/PrintSpooler/res/values/strings.xml
@@ -150,6 +150,9 @@
More information about this printer
+
+ Could not create file
+
Some print services are disabled
diff --git a/packages/PrintSpooler/src/com/android/printspooler/ui/PrintActivity.java b/packages/PrintSpooler/src/com/android/printspooler/ui/PrintActivity.java
index cc0b4ca46d481..8b1fd08d40fd6 100644
--- a/packages/PrintSpooler/src/com/android/printspooler/ui/PrintActivity.java
+++ b/packages/PrintSpooler/src/com/android/printspooler/ui/PrintActivity.java
@@ -84,6 +84,7 @@ import android.widget.ImageView;
import android.widget.Spinner;
import android.widget.TextView;
+import android.widget.Toast;
import com.android.internal.logging.MetricsLogger;
import com.android.printspooler.R;
import com.android.printspooler.model.MutexFileProvider;
@@ -658,7 +659,15 @@ public class PrintActivity extends Activity implements RemotePrintDocument.Updat
intent.setType("application/pdf");
intent.putExtra(Intent.EXTRA_TITLE, info.getName());
intent.putExtra(DocumentsContract.EXTRA_PACKAGE_NAME, mCallingPackageName);
- startActivityForResult(intent, ACTIVITY_REQUEST_CREATE_FILE);
+
+ try {
+ startActivityForResult(intent, ACTIVITY_REQUEST_CREATE_FILE);
+ } catch (Exception e) {
+ Log.e(LOG_TAG, "Could not create file", e);
+ Toast.makeText(this, getString(R.string.could_not_create_file),
+ Toast.LENGTH_SHORT).show();
+ onStartCreateDocumentActivityResult(RESULT_CANCELED, null);
+ }
}
private void onStartCreateDocumentActivityResult(int resultCode, Intent data) {