youtubedl-android
youtubedl-android copied to clipboard
Download Not Work in Live App.
hiii, i will use your library for download insta and Facebook Video. i will update version code...when app in debug mode downlaod was working but app live i will show Toast.(failed to update). please help . thanks.
hiii, i will use your library for download insta and Facebook Video. i will update version code...when app in debug mode downlaod was working but app live i will show Toast.(failed to update). please help . thanks.
hi! try to add in app build.gradle file:
splits {
abi {
enable true
reset()
include 'x86', 'x86_64', 'armeabi-v7a', 'arm64-v8a'
universalApk true
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = "1.8"
}
and in proguards file:
-keep class com.yausername.youtubedl_android.** { *; }
and include proguards file in release build in app's build.gradle:
release {
...
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
Thanks For Help But in Live App Facing Same Error .i will provides some ScreenShots .
As you mentioned above, I have add in my project.. show in below ScreenShots of my gradle file.
ScreenShot 1==>
but When my app is Live in playStore then it shows some Toast error as shown in below Square Box in ScreenShots ..
ScreenShot 1==>
ScreenShot 1===>
.
when we create And Test Relese Apk .Update and Download Video Both Successfull.
.i will provides some ScreenShots ok Relese Apk.
ScreenShot 1==>
Screen Shot 2 ==>
the issue is the packaging so you have to add these lines in the gradle
resources {
excludes += ['mozilla/public-suffix-list.txt',
'META-INF/DEPENDENCIES',
'META-INF/LICENSE',
'META-INF/LICENSE.txt',
'META-INF/license.txt',
'META-INF/NOTICE',
'META-INF/NOTICE.txt',
'META-INF/notice.txt',
'META-INF/ASL2.0',
'META-INF/*.kotlin_module']
}
jniLibs.useLegacyPackaging = true
}
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
same error in android java can any one help
plugins { id 'com.android.application' id 'com.google.gms.google-services' id 'com.google.firebase.crashlytics' }
android { compileSdk 34 namespace "" defaultConfig { applicationId "" minSdkVersion 24 targetSdkVersion 34 versionCode 16 versionName "16" multiDexEnabled true vectorDrawables.useSupportLibrary = true testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" ndk { abiFilters 'x86', 'x86_64', 'armeabi-v7a', 'arm64-v8a' } }
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
debug {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
packagingOptions {
resources {
excludes += ['mozilla/public-suffix-list.txt',
'META-INF/DEPENDENCIES',
'META-INF/LICENSE',
'META-INF/LICENSE.txt',
'META-INF/license.txt',
'META-INF/NOTICE',
'META-INF/NOTICE.txt',
'META-INF/notice.txt',
'META-INF/ASL2.0',
'META-INF/*.kotlin_module']
}
}
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
lintOptions {
quiet true
abortOnError false
ignoreWarnings true
checkReleaseBuilds false
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
buildFeatures {
viewBinding true
}
splits {
abi {
enable true
reset()
include 'x86', 'x86_64', 'armeabi-v7a', 'arm64-v8a'
universalApk true
}
}
}
dependencies {
implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'com.google.android.material:material:1.11.0'
implementation 'com.google.firebase:firebase-analytics:21.6.1'
implementation 'com.google.firebase:firebase-crashlytics:18.6.2'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
implementation 'androidx.activity:activity:1.8.2'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.5'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
implementation 'com.squareup.okhttp3:okhttp:5.0.0-alpha.7'
implementation 'com.github.bumptech.glide:glide:4.16.0'
implementation 'io.github.ParkSangGwon:tedpermission-normal:3.3.0'
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
implementation 'com.squareup.retrofit2:converter-scalars:2.9.0'
implementation 'com.github.angads25:toggle:1.1.0'
implementation 'com.journeyapps:zxing-android-embedded:4.3.0'
implementation "androidx.work:work-runtime:2.9.0"
implementation 'com.intuit.ssp:ssp-android:1.1.0'
implementation 'com.intuit.sdp:sdp-android:1.1.0'
implementation 'org.jsoup:jsoup:1.15.3'
implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0'
implementation 'io.reactivex.rxjava2:rxjava:2.2.19'
implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
implementation 'com.squareup.okhttp3:logging-interceptor:4.10.0'
implementation 'com.squareup.retrofit2:adapter-rxjava2:2.2.0'
implementation 'com.google.code.gson:gson:2.10.1'
implementation 'org.xutils:xutils:3.9.0'
implementation 'com.google.android.exoplayer:exoplayer:2.19.1'
implementation 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.34'
implementation 'com.airbnb.android:lottie:6.3.0'
implementation("org.greenrobot:eventbus:3.3.1")
implementation 'com.amitshekhar.android:android-networking:1.0.2'
implementation 'com.cj.videoprogressview:progressview:1.0.0'
implementation 'com.makeramen:roundedimageview:2.3.0'
implementation 'com.tbuonomo:dotsindicator:4.3'
implementation 'com.google.android.play:review:2.0.1'
implementation "androidx.multidex:multidex:2.0.1"
implementation 'com.karumi:dexter:6.2.3'
implementation 'com.squareup.picasso:picasso:2.71828'
implementation 'com.google.firebase:firebase-config:21.6.3'
implementation "com.android.billingclient:billing:6.2.0"
implementation 'com.google.android.play:review:2.0.1'
implementation 'com.google.android.gms:play-services-ads:23.0.0'
implementation("com.google.android.ump:user-messaging-platform:2.1.0")
implementation 'com.github.HamidrezaAmz:MagicalExoPlayer:3.0.8'
implementation "com.github.yausername.youtubedl-android:library:$youtubedlAndroidVer"
implementation "com.github.yausername.youtubedl-android:ffmpeg:$youtubedlAndroidVer"
implementation "com.github.yausername.youtubedl-android:aria2c:$youtubedlAndroidVer"
implementation "com.devbrackets.android:exomedia:4.3.0"
implementation 'com.google.android.material:material:1.11.0'
implementation 'com.andrognito.patternlockview:patternlockview:1.0.0'
implementation 'com.kevalpatel2106:hiddencamera:1.3.3'
implementation 'com.firebaseui:firebase-ui-auth:4.3.1'
implementation 'com.google.firebase:firebase-auth:22.3.1'
implementation 'androidx.core:core-splashscreen:1.0.1'
implementation 'com.google.ads.mediation:facebook:6.16.0.0'
}
buildscript { ext { agp_version3 = '8.2.1' } dependencies { classpath "com.android.tools.build:gradle:$agp_version3" classpath 'com.google.gms:google-services:4.4.1' classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.9' classpath 'com.github.dcendents:android-maven-gradle-plugin:2.1'
}
} plugins { id 'com.android.application' version '8.2.1' apply false id 'com.android.library' version '8.2.1' apply false } def versionMajor = 0 def versionMinor = 13 def versionPatch = 1 def versionBuild = 0 // bump for dogfood builds, public betas, etc.
ext { versionCode = versionMajor * 100000 + versionMinor * 1000 + versionPatch * 100 + versionBuild versionName = "${versionMajor}.${versionMinor}.${versionPatch}" // dependency versions appCompatVer = '1.1.0' junitVer = '4.12' androidJunitVer = '1.1.1' espressoVer = '3.2.0' jacksonVer = '2.9.8' youtubedlAndroidVer = "23b26d55f8"
commonsIoVer = '2.5'
commonsCompressVer = '1.12'
} group = 'com.github.yausername' version = versionName
package com.callguard.calleridblock.usa.calleridnameaddress;
import android.app.Activity; import android.app.AlertDialog; import android.app.Dialog; import android.content.DialogInterface; import android.content.Intent; import android.content.SharedPreferences; import android.content.pm.PackageManager; import android.graphics.Color; import android.net.Uri; import android.os.Build; import android.provider.Settings; import android.view.View; import android.widget.Button; import android.widget.TextView;
import androidx.core.app.ActivityCompat;
import com.callguard.calleridblock.usa.R; import com.my.sdclass.AppManage; import com.my.sdclass.MyCallback;
import static android.content.Context.MODE_PRIVATE;
public class PermissionUtils {
Activity activity;
Intent intent;
String[] permissionsRequired;
private SharedPreferences permissionStatus;
private static final int PERMISSION_CALLBACK_CONSTANT = 100;
private static final int REQUEST_PERMISSION_SETTING = 101;
private boolean sentToSettings = false;
private boolean writeflag = false;
private boolean overflag = false;
Dialog dialog1, dialog2, dialog3, dialog4;
boolean isFinish;
public PermissionUtils(Activity activity, Intent intent, boolean isFinish) {
this.activity = activity;
this.intent = intent;
this.isFinish = isFinish;
}
public void grantPermition() {
permissionStatus = activity.getSharedPreferences("permissionStatus", MODE_PRIVATE);
permissionsRequired = new String[]{ "android.permission.CALL_PHONE", "android.permission.WRITE_CONTACTS"
};
if (Build.VERSION.SDK_INT >= 31) {
permissionsRequired = new String[]{ "android.permission.READ_CONTACTS",
"android.permission.CALL_PHONE", "android.permission.WRITE_CONTACTS"
};
}
if (Build.VERSION.SDK_INT >= 31) {
if (ActivityCompat.checkSelfPermission(activity, permissionsRequired[0]) != PackageManager.PERMISSION_GRANTED
|| ActivityCompat.checkSelfPermission(activity, permissionsRequired[1]) != PackageManager.PERMISSION_GRANTED
|| ActivityCompat.checkSelfPermission(activity, permissionsRequired[2]) != PackageManager.PERMISSION_GRANTED) {
if (ActivityCompat.shouldShowRequestPermissionRationale(activity, permissionsRequired[0])
|| ActivityCompat.shouldShowRequestPermissionRationale(activity, permissionsRequired[1])
|| ActivityCompat.shouldShowRequestPermissionRationale(activity, permissionsRequired[2])) {
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
builder.setTitle("Need Multiple Permissions");
builder.setMessage("This app needs to all permissions.");
builder.setPositiveButton("Grant", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
ActivityCompat.requestPermissions(activity, permissionsRequired, PERMISSION_CALLBACK_CONSTANT);
}
});
builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
AlertDialog dialog = builder.create();
dialog.show();
Button b = dialog.getButton(DialogInterface.BUTTON_NEGATIVE);
Button b1 = dialog.getButton(DialogInterface.BUTTON_POSITIVE);
b.setTextColor(Color.parseColor("#0034ff"));
b1.setTextColor(Color.parseColor("#0034ff"));
} else if (permissionStatus.getBoolean(permissionsRequired[0], false)) {
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
builder.setTitle("Need Multiple Permissions");
builder.setMessage("This app needs to all permissions.");
builder.setPositiveButton("Grant", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
sentToSettings = true;
Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
Uri uri = Uri.fromParts("package", activity.getPackageName(), null);
intent.setData(uri);
activity.startActivityForResult(intent, REQUEST_PERMISSION_SETTING);
}
});
builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
AlertDialog dialog = builder.create();
dialog.show();
Button b = dialog.getButton(DialogInterface.BUTTON_NEGATIVE);
Button b1 = dialog.getButton(DialogInterface.BUTTON_POSITIVE);
b.setTextColor(Color.parseColor("#0034ff"));
b1.setTextColor(Color.parseColor("#0034ff"));
} else {
ActivityCompat.requestPermissions(activity, permissionsRequired, PERMISSION_CALLBACK_CONSTANT);
}
SharedPreferences.Editor editor = permissionStatus.edit();
editor.putBoolean(permissionsRequired[0], true);
editor.commit();
} else {
proceedAfterPermission();
}
} else {
if (ActivityCompat.checkSelfPermission(activity, permissionsRequired[0]) != PackageManager.PERMISSION_GRANTED
|| ActivityCompat.checkSelfPermission(activity, permissionsRequired[1]) != PackageManager.PERMISSION_GRANTED) {
if (ActivityCompat.shouldShowRequestPermissionRationale(activity, permissionsRequired[0])
|| ActivityCompat.shouldShowRequestPermissionRationale(activity, permissionsRequired[1])) {
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
builder.setTitle("Need Multiple Permissions");
builder.setMessage("This app needs to all permissions.");
builder.setPositiveButton("Grant", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
ActivityCompat.requestPermissions(activity, permissionsRequired, PERMISSION_CALLBACK_CONSTANT);
}
});
builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
AlertDialog dialog = builder.create();
dialog.show();
Button b = dialog.getButton(DialogInterface.BUTTON_NEGATIVE);
Button b1 = dialog.getButton(DialogInterface.BUTTON_POSITIVE);
b.setTextColor(Color.parseColor("#0034ff"));
b1.setTextColor(Color.parseColor("#0034ff"));
} else if (permissionStatus.getBoolean(permissionsRequired[0], false)) {
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
builder.setTitle("Need Multiple Permissions");
builder.setMessage("This app needs to all permissions.");
builder.setPositiveButton("Grant", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
sentToSettings = true;
Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
Uri uri = Uri.fromParts("package", activity.getPackageName(), null);
intent.setData(uri);
activity.startActivityForResult(intent, REQUEST_PERMISSION_SETTING);
}
});
builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
AlertDialog dialog = builder.create();
dialog.show();
Button b = dialog.getButton(DialogInterface.BUTTON_NEGATIVE);
Button b1 = dialog.getButton(DialogInterface.BUTTON_POSITIVE);
b.setTextColor(Color.parseColor("#0034ff"));
b1.setTextColor(Color.parseColor("#0034ff"));
} else {
ActivityCompat.requestPermissions(activity, permissionsRequired, PERMISSION_CALLBACK_CONSTANT);
}
SharedPreferences.Editor editor = permissionStatus.edit();
editor.putBoolean(permissionsRequired[0], true);
editor.commit();
} else {
proceedAfterPermission();
}
}
}
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
if (requestCode == PERMISSION_CALLBACK_CONSTANT) {
boolean allgranted = false;
for (int i = 0; i < grantResults.length; i++) {
if (grantResults[i] == PackageManager.PERMISSION_GRANTED) {
allgranted = true;
} else {
allgranted = false;
break;
}
}
if (allgranted) {
proceedAfterPermission();
} else {
if (Build.VERSION.SDK_INT >= 31) {
if (ActivityCompat.shouldShowRequestPermissionRationale(activity, permissionsRequired[0])
|| ActivityCompat.shouldShowRequestPermissionRationale(activity, permissionsRequired[1])
|| ActivityCompat.shouldShowRequestPermissionRationale(activity, permissionsRequired[2])) {
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
builder.setTitle("Need Multiple Permissions");
builder.setMessage("This app needs to all permissions.");
builder.setPositiveButton("Grant", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
ActivityCompat.requestPermissions(activity, permissionsRequired, PERMISSION_CALLBACK_CONSTANT);
}
});
builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
AlertDialog dialog = builder.create();
dialog.show();
Button b = dialog.getButton(DialogInterface.BUTTON_NEGATIVE);
Button b1 = dialog.getButton(DialogInterface.BUTTON_POSITIVE);
b.setTextColor(Color.parseColor("#0034ff"));
b1.setTextColor(Color.parseColor("#0034ff"));
} else {
}
} else {
if (ActivityCompat.shouldShowRequestPermissionRationale(activity, permissionsRequired[0])
|| ActivityCompat.shouldShowRequestPermissionRationale(activity, permissionsRequired[1])) {
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
builder.setTitle("Need Multiple Permissions");
builder.setMessage("This app needs to all permissions.");
builder.setPositiveButton("Grant", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
ActivityCompat.requestPermissions(activity, permissionsRequired, PERMISSION_CALLBACK_CONSTANT);
}
});
builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
AlertDialog dialog = builder.create();
dialog.show();
Button b = dialog.getButton(DialogInterface.BUTTON_NEGATIVE);
Button b1 = dialog.getButton(DialogInterface.BUTTON_POSITIVE);
b.setTextColor(Color.parseColor("#0034ff"));
b1.setTextColor(Color.parseColor("#0034ff"));
} else {
}
}
}
}
}
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_PERMISSION_SETTING) {
if (Build.VERSION.SDK_INT >= 31) {
if (ActivityCompat.checkSelfPermission(activity, permissionsRequired[0]) == PackageManager.PERMISSION_GRANTED &&
ActivityCompat.checkSelfPermission(activity, permissionsRequired[1]) == PackageManager.PERMISSION_GRANTED &&
ActivityCompat.checkSelfPermission(activity, permissionsRequired[2]) == PackageManager.PERMISSION_GRANTED ) {
proceedAfterPermission();
}
} else {
if (ActivityCompat.checkSelfPermission(activity, permissionsRequired[0]) == PackageManager.PERMISSION_GRANTED &&
ActivityCompat.checkSelfPermission(activity, permissionsRequired[1]) == PackageManager.PERMISSION_GRANTED ) {
proceedAfterPermission();
}
}
}
}
int dia3_dis = 0;
protected void onResume() {
if (writeflag == true) {
boolean retVal = true;
try {
dialog1.dismiss();
dialog3.dismiss();
} catch (Exception e) {
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
retVal = Settings.System.canWrite(activity);
if (retVal) {
dialog4 = new Dialog(activity, R.style.s_permission);
dialog4.setContentView(R.layout.dialog_write);
dialog4.setCancelable(false);
TextView write_ok = dialog4.findViewById(R.id.write_ok);
TextView sort_sen = dialog4.findViewById(R.id.sort_sen);
TextView long_sen = dialog4.findViewById(R.id.long_sen);
sort_sen.setText("Required for Caller Id to system alert window");
long_sen.setText("System Alert Window");
write_ok.setText("Give Permission");
write_ok.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION,
Uri.parse("package:" + activity.getPackageName()));
activity.startActivityForResult(intent, 848);
overflag = true;
writeflag = false;
dialog4.dismiss();
}
});
dialog4.show();
} else {
dialog1.dismiss();
if (dia3_dis == 1) {
dialog3.dismiss();
}
dialog3 = new Dialog(activity, R.style.s_permission);
dialog3.setContentView(R.layout.dialog_write);
dialog3.setCancelable(false);
TextView write_ok = dialog3.findViewById(R.id.write_ok);
TextView sort_sen = dialog3.findViewById(R.id.sort_sen);
TextView long_sen = dialog3.findViewById(R.id.long_sen);
sort_sen.setText("Required for Caller Id to manage write setting");
long_sen.setText("Write Setting");
write_ok.setText("Give Permission");
write_ok.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dia3_dis = 1;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (!Settings.System.canWrite(activity)) {
Intent intent = new Intent("android.settings.action.MANAGE_WRITE_SETTINGS");
StringBuilder sb = new StringBuilder();
sb.append("package:");
sb.append(activity.getPackageName());
intent.setData(Uri.parse(sb.toString()));
activity.startActivityForResult(intent, 1112);
writeflag = true;
overflag = false;
dialog3.dismiss();
}
}
}
});
dialog3.show();
}
}
}
if (overflag == true) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
dialog4.dismiss();
if (Settings.canDrawOverlays(activity)) {
SharedPreferences.Editor editor = activity.getSharedPreferences("MyPrefFile1", MODE_PRIVATE).edit();
editor.putBoolean("permission", true);
editor.commit();
AppManage.getInstance(activity).inScreen(activity, new MyCallback() {
public void callbackCall() {
activity.startActivity(intent);
if (isFinish) {
activity.finish();
}
}
}, AppManage.go);
} else {
dialog1.dismiss();
dialog2 = new Dialog(activity, R.style.s_permission);
dialog2.setContentView(R.layout.dialog_write);
dialog2.setCancelable(false);
TextView write_ok = dialog2.findViewById(R.id.write_ok);
TextView sort_sen = dialog2.findViewById(R.id.sort_sen);
TextView long_sen = dialog2.findViewById(R.id.long_sen);
sort_sen.setText("Required for Caller Id to system alert window");
long_sen.setText("System Alert Window");
write_ok.setText("Give Permission");
write_ok.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION,
Uri.parse("package:" + activity.getPackageName()));
activity.startActivityForResult(intent, 848);
overflag = true;
writeflag = false;
dialog2.dismiss();
}
});
dialog2.show();
}
}
}
}
private void proceedAfterPermission() {
checkSystemWritePermission();
}
private boolean checkSystemWritePermission() {
boolean retVal = true;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
retVal = Settings.System.canWrite(activity);
if (retVal) {
SharedPreferences.Editor editor = activity.getSharedPreferences("MyPrefFile1", MODE_PRIVATE).edit();
editor.putBoolean("permission", true);
editor.commit();
AppManage.getInstance(activity).inScreen(activity, new MyCallback() {
public void callbackCall() {
activity.startActivity(intent);
if (isFinish) {
activity.finish();
}
}
}, AppManage.go);
} else {
dialog1 = new Dialog(activity, R.style.s_permission);
dialog1.setContentView(R.layout.dialog_write);
dialog1.setCancelable(false);
TextView write_ok = dialog1.findViewById(R.id.write_ok);
TextView sort_sen = dialog1.findViewById(R.id.sort_sen);
TextView long_sen = dialog1.findViewById(R.id.long_sen);
sort_sen.setText("Required for Caller Id to manage write setting");
long_sen.setText("Write Setting");
write_ok.setText("Give Permission");
write_ok.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (!Settings.System.canWrite(activity)) {
Intent intent = new Intent("android.settings.action.MANAGE_WRITE_SETTINGS");
StringBuilder sb = new StringBuilder();
sb.append("package:");
sb.append(activity.getPackageName());
intent.setData(Uri.parse(sb.toString()));
activity.startActivityForResult(intent, 1112);
writeflag = true;
overflag = false;
dialog1.dismiss();
try {
dialog3.dismiss();
} catch (Exception e) {
}
}
}
}
});
dialog1.show();
}
}
return retVal;
}
}
hiii, i will use your library for download insta and Facebook Video. i will update version code...when app in debug mode downlaod was working but app live i will show Toast.(failed to update). please help . thanks.
any solution get ?
Any solution? i'm also getting same error like "Failed to initialize" in Live app