Parse errorr trying to install downloaded .apk file - android

I want to upgrade my app. and i get new version .apk on server. It is work on manually if delete old version app. on device but if I do not delete old version app. does not work again I take same parse error.
I added AndroidManifest file: <uses-permission android:name="android.permission.INSTALL_PACKAGES"
tools:ignore="ProtectedPermissions" />
I test another .apk and it is work.
public class VersionUpdateTask extends AsyncTask<String, Float, String> {
#Override
protected void onPostExecute(String result) {
mWakeLock.release();
updateManager.updateBar.stop();
else {
try {
String PATH = Environment.getExternalStorageDirectory() + "/download/";
File file = new File(PATH, updateManager.apkOutPath);
if (Build.VERSION.SDK_INT >=Build.VERSION_CODES.N) {
Uri fileUri = FileProvider.getUriForFile(updateManager.updateContext,updateManager.updateContext.getPackageName() + ".provider", file);
Intent intent = new Intent(Intent.ACTION_VIEW, fileUri);
intent.putExtra(Intent.EXTRA_NOT_UNKNOWN_SOURCE, true);
intent.setDataAndType(fileUri, "application/vnd.android" + ".package-archive");
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
updateManager.updateContext.startActivity(intent);
} else {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(file), "application/vnd.android.package-archive");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
updateManager.updateContext.startActivity(intent);
}
}
catch (Exception e){
e.printStackTrace();
}
}
}
}

Related

Unable to open PDF file through intent programmatically in android

I have an app where on button click, access should be provided to browse and open the PDF files stored in the internal memory of the device.I tried various codes but i get an toast saying "Cannot display PDF". I don't get any errors in logs. I use android version 7.0 device. Attached my code below: please help:
File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath()+"/example.pdf");
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(file), "application/pdf");
intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
startActivity(intent);
I have included this in Oncreate:
StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder();
StrictMode.setVmPolicy(builder.build());
This is how called the method:
linear_pdf.setOnClickListener(new View.OnClickListener() {
#Override
public void onClick(View v) {
pdf.setTextColor(getActivity().getResources().getColor(R.color.colorWhite));
openPdf(getContext(), Environment.getExternalStorageDirectory().getAbsolutePath()+"/example.pdf");
communication.dismiss();
}
});
Try this one...
public void openPdf(Context context, String path){
File file = new File(path);
if (file.exists()) {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(file), "application/pdf");
PackageManager pm = context.getPackageManager();
Intent sendIntent = new Intent(Intent.ACTION_VIEW);
sendIntent.setType("application/pdf");
Intent openInChooser = Intent.createChooser(intent, "Choose");
List<ResolveInfo> resInfo = pm.queryIntentActivities(sendIntent, 0);
if (resInfo.size() > 0) {
try {
context.startActivity(openInChooser);
} catch (Throwable throwable) {
Toast.makeText(context, "PDF apps are not installed", Toast.LENGTH_SHORT).show();
// PDF apps are not installed
}
} else {
Toast.makeText(context, "PDF apps are not installed", Toast.LENGTH_SHORT).show();
}
}
}
Call this method:
openPdf(getApplicationContext(), Environment.getExternalStorageDirectory().getAbsolutePath()+"/example.pdf");
For opening one specific file:
File pdfFile = new File(Environment.getExternalStorageDirectory() + "/your_directory/" + "your_file_name" + ".pdf");
Uri path = Uri.fromFile(pdfFile);
Intent pdfIntent = new Intent(Intent.ACTION_VIEW);
pdfIntent.setDataAndType(path, "application/pdf");
pdfIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
try{
startActivity(pdfIntent);
}catch(ActivityNotFoundException e){
Toast.makeText(getContext(), "No required app", Toast.LENGTH_SHORT).show();
}
Check directory, this one works.
For opening pdf file from local storage add prefix in url.
private void openPdf(File file) {
try {
String url = file.getAbsolutePath();
String u = "file:///" + url;
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(u));
startActivity(i);
} catch (Exception e) {
e.printStackTrace();
}
}

Exporting to Excel using an intent and directly opening it

I made a code to export excel from intent android, but this code didn't work and show this alert .
Intent intent = new Intent(Intent.ACTION_VIEW);
if (Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
Uri fileUri = FileProvider.getUriForFile(context, context.getApplicationContext().getPackageName() + ".provider", dir);
intent.setDataAndType(fileUri,"application/*");
} else {
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.setDataAndType(Uri.fromFile(dir),"application/*");
}
try {
context.startActivity(intent);
} catch (Exception ex) {
ex.printStackTrace();
Toast.makeText(context, "You need to have Microsoft Office Excel Installed here", Toast.LENGTH_LONG).show();
} finally {
Toast.makeText(context, "Success create report on " + dir.getPath() , Toast.LENGTH_LONG).show();
}

Android open XLSX file

I'm trying to open an XLSX file within my Android App.
I'm aware that the Intent type I have to fire is application/excel, but despite I've installed Google Sheets, my code says that no application can open my excel file.
This is the code I use to fire the Intent:
private void openXLS(){
File xls = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS), "prova.xlsx");
Uri path = Uri.fromFile(xls);
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(path, "application/excel");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
try {
context.startActivity(intent);
} catch (ActivityNotFoundException e) {
Toast.makeText(context, "No Application available to view XLS", Toast.LENGTH_SHORT).show();
}
}
Note: prova.xlsx exists, and I'm able to reach it and open it.
SOLVED
Using the MIME type application/vnd.ms-excel, *.xls and *.xlsx files can be opened.
private void openXLS(final String path) {
File file = new File(path);
Uri uri ;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
uri = FileProvider.getUriForFile(context, context.getPackageName() + ".provider", file);
} else {
uri = Uri.fromFile(file);
}
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.setDataAndType(path, "application/vnd.ms-excel");
intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
try {
startActivity(intent);
} catch (ActivityNotFoundException e) {
Toast.makeText(this, "Application not found", Toast.LENGTH_SHORT).show();
}
}

How PDf file can be read through android via coding

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button OpenPDF = (Button) findViewById(R.id.button);
OpenPDF.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
File pdfFile = new File("res/raw/comic.pdf");
if(pdfFile.exists())
{
//Uri path = Uri.fromFile(pdfFile);
Uri path = Uri.parse("android.resource://" + getPackageName() + "/ R.raw.comic.pdf");
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(path, "application/pdf");
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
// Intent pdfIntent = new Intent(Intent.ACTION_VIEW);
// Intent pdfIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("content://package.name/" + pdfFile));
// pdfIntent.setDataAndType(path, "/assets/arduino-comic-latest.pdf");
// pdfIntent.setType("application/pdf");
// pdfIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
try
{
startActivity(intent);
}
catch(ActivityNotFoundException e)
{
Toast.makeText(MainActivity.this, "No Application available to view pdf", Toast.LENGTH_LONG).show();
}
}
}
});
I have done this code but this is not find the path of the file.what I have to do??can Anyone help me
Thankyou
you cant do that directly, you have to use Native Library for reading PDF... library may be iText, jPedal, Mupdf, Pdfbox... etc. Google it

How to Read PDF in Android?

How to Read PDF in Android stored in SDCard ??
Here's some code showing how to open a pdf file to read:
private void openBook() {
File file = new File(mRealPath);
Uri path = Uri.fromFile(file);
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.setDataAndType(path, getString(R.string.application_type));
try {
startActivity(intent);
} catch (ActivityNotFoundException e) {
Toast.makeText(FirstTab.this,
getString(R.string.no_application_found),
Toast.LENGTH_SHORT).show();
}
}

Categories

Resources