ali666645 1 ارسال شده در 7 اسفند، 2018 اشتراک گذاری ارسال شده در 7 اسفند، 2018 سلام من یک برنامه نوشتم که یک فایل apk رو فراخوانی میکنه و وارد صفحه ی نصب میشه در تمام اندروید ها به جز اندروید 7 و 8 به خوبی کار میکنه اما روی 7 و 8 فورس کلوز میده از fileprovider برای اندروید 7 و بیشتر از 7 استفاده کردم لطفا کمک کنید package com.example.ali.filep; import android.Manifest; import android.app.Activity; import android.app.ProgressDialog; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.content.res.AssetManager; import android.net.Uri; import android.os.Build; import android.os.Bundle; import android.os.Environment; import android.os.Handler; import android.support.annotation.NonNull; import android.support.v4.app.ActivityCompat; import android.support.v4.content.FileProvider; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.Toast; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import uk.co.chrisjenx.calligraphy.CalligraphyContextWrapper; public class MainActivity extends Activity { final Context context = this; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button mybutton = (Button)findViewById(R.id.b); mybutton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String path = Environment.getExternalStorageDirectory() + "/Download/" + "myapk.apk"; InstallUpdate(path ); } }); } public void InstallUpdate(String path) { final File toInstall = new File(path); if (Build.VERSION.SDK_INT >= 24) { Uri apkUri = FileProvider.getUriForFile(context, "sheiday.ptsu.com.installer.fileprovider", toInstall); Intent install = new Intent(Intent.ACTION_VIEW); install.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); install.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); install.setDataAndType(apkUri, "application/vnd.android.package-archive"); context.startActivity(install); } else { Uri apkUri = Uri.fromFile(toInstall); Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(apkUri, "application/vnd.android.package-archive"); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); this.startActivity(intent); } } public boolean isStoragePermissionGranted() { if (Build.VERSION.SDK_INT >= 23) { if (checkSelfPermission(android.Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) { Log.v(TAG, "Permission is granted"); return true; } else { Log.v(TAG, "Permission is revoked"); ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1); return false; } } else { //permission is automatically granted on sdk<23 upon installation Log.v(TAG, "Permission is granted"); return true; } } @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); if (grantResults[0] == PackageManager.PERMISSION_GRANTED) { Log.v(TAG, "Permission: " + permissions[0] + "was " + grantResults[0]); //resume tasks needing this permission } } public void Deleteupdeate() { File file = new File(Environment.getExternalStorageDirectory() + "/Download/" + "yourapk.apk"); boolean d = file.delete(); if (file.exists()) { try { file.getCanonicalFile().delete(); } catch (IOException e) { e.printStackTrace(); } if (file.exists()) { getApplicationContext().deleteFile(file.getName()); } if (!file.exists()) { Toast.makeText(this, "delete file downloaded", Toast.LENGTH_LONG).show(); } } } } <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="yournamePackge" > <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <provider android:name="android.support.v4.content.FileProvider" android:authorities="yourpackge.fileprovider" android:exported="false" android:grantUriPermissions="true"> <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/filepath" /> </provider> </application> </manifest> و یک فایل xml هم داره به نام filepath <?xml version="1.0" encoding="utf-8"?> <resources> <paths> <external-path path="" name="download"/> </paths> </resources> و اینم xml اصلی <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <Button android:text="Button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:layout_marginBottom="110dp" android:id="@+id/b" /> </RelativeLayout> برای اندروید 7 به صورت دستی میرم تنظیمات و پرمیشن رو اجازه میدم اما بازم فورس کلوز میده ممنون از راهنمایی تون لینک ارسال
مدیریت کل سایت ILYA20 2,097 ارسال شده در 7 اسفند، 2018 مدیریت کل سایت اشتراک گذاری ارسال شده در 7 اسفند، 2018 درود فایل apk که فراخوانی میکنید مطمئن هستید روی اندروید 8 کار میکنه ؟ روی اپ دیگری تست کنید اگه این پست بهت کمک کرد دنبال دکمه تشکر نگرد . بجاش تو هم به جامعه آزادت کمک کن. لینک ارسال
hadi9823 192 ارسال شده در 8 اسفند، 2018 اشتراک گذاری ارسال شده در 8 اسفند، 2018 در 15 ساعت قبل، ali666645 گفته است : <provider android:name="android.support.v4.content.FileProvider" android:authorities="yourpackge.fileprovider" android:exported="false" android:grantUriPermissions="true"> <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/filepath" /> </provider> دستور اجرا نمیشه لینک ارسال
ali666645 1 ارسال شده در 8 اسفند، 2018 مالک اشتراک گذاری ارسال شده در 8 اسفند، 2018 در 9 ساعت قبل، ILYA20 گفته است : درود فایل apk که فراخوانی میکنید مطمئن هستید روی اندروید 8 کار میکنه ؟ روی اپ دیگری تست کنید نه روی اندروید 8 نه اندروید 7 اجرا نمیشه لینک ارسال
ali666645 1 ارسال شده در 8 اسفند، 2018 مالک اشتراک گذاری ارسال شده در 8 اسفند، 2018 در 34 دقیقه قبل، hadi9823 گفته است : دستور اجرا نمیشه خوب چه جوری درستش کنم که اجرا بشه؟ لینک ارسال
مدیریت کل سایت ILYA20 2,097 ارسال شده در 8 اسفند، 2018 مدیریت کل سایت اشتراک گذاری ارسال شده در 8 اسفند، 2018 در 11 دقیقه قبل، ali666645 گفته است : نه روی اندروید 8 نه اندروید 7 اجرا نمیشه دوست عزیز منظورم اپلیکیشنی بود که میخواهید اون رو توسط ابزارتون هندل کنید خدمتتون عرض کردم اپ دیگری رو برای تست هندل کنید ببینید کار میده اگه این پست بهت کمک کرد دنبال دکمه تشکر نگرد . بجاش تو هم به جامعه آزادت کمک کن. لینک ارسال
ali666645 1 ارسال شده در 8 اسفند، 2018 مالک اشتراک گذاری ارسال شده در 8 اسفند، 2018 در هم اکنون، ILYA20 گفته است : دوست عزیز منظورم اپلیکیشنی بود که میخواهید اون رو توسط ابزارتون هندل کنید خدمتتون عرض کردم اپ دیگری رو برای تست هندل کنید ببینید کار میده درود چنتا اپ رو تست کردم جواب نداد در هر صورت پس از فشار دادن کلید فورس کلوز میده لینک ارسال
ali666645 1 ارسال شده در 8 اسفند، 2018 مالک اشتراک گذاری ارسال شده در 8 اسفند، 2018 اینم لینک خود پروژه https://drive.google.com/open?id=1i4N_GrPTfVYeVIdjbtHKteVvRCvV6G92 لینک ارسال
hadi9823 192 ارسال شده در 8 اسفند، 2018 اشتراک گذاری ارسال شده در 8 اسفند، 2018 از سورس کد فایل activity_main.xml بزار ببینیم مشکل کجاست؟ لینک ارسال
ali666645 1 ارسال شده در 8 اسفند، 2018 مالک اشتراک گذاری ارسال شده در 8 اسفند، 2018 بفرمایید activity_main.xml لینک ارسال
ارسال های توصیه شده
بایگانی شده
این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.