Take backup of all install apk file into sdcard programmatically in Android

android, android-install-apk, android-sdcard, apk, copy

Solution

Try this..

final Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
        mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
        final List pkgAppsList = getPackageManager().queryIntentActivities( mainIntent, 0);
        int z = 0;
        for (Object object : pkgAppsList) {

            ResolveInfo info = (ResolveInfo) object;

            File f1 =new File( info.activityInfo.applicationInfo.publicSourceDir);

            Log.v("file--", " "+f1.getName().toString()+"----"+info.loadLabel(getPackageManager()));
                try{

                    String file_name = info.loadLabel(getPackageManager()).toString();
                    Log.d("file_name--", " "+file_name);

                   // File f2 = new File(Environment.getExternalStorageDirectory().toString()+"/Folder/"+file_name+".apk");
                   // f2.createNewFile();

                    File f2 = new File(Environment.getExternalStorageDirectory().toString()+"/Folder");   
                    f2.mkdirs();            
                    f2 = new File(f2.getPath()+"/"+file_name+".apk");
                    f2.createNewFile();

                    InputStream in = new FileInputStream(f1);

                    OutputStream out = new FileOutputStream(f2);

                    byte[] buf = new byte[1024];
                    int len;
                    while ((len = in.read(buf)) > 0){
                        out.write(buf, 0, len);
                    }
                    in.close();
                    out.close();
                    System.out.println("File copied.");
                }
                catch(FileNotFoundException ex){
                    System.out.println(ex.getMessage() + " in the specified directory.");
                }
                catch(IOException e){
                    System.out.println(e.getMessage());      
                }
        }

Problem

I want to take back up of my all install application in my sdcard so I write below code ``` public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final Intent mainIntent = new Intent(Intent.ACTION_MAIN, null); mainIntent.addCategory(Intent.CATEGORY_LAUNCHER); final List pkgAppsList = getPackageManager().queryIntentActivities( mainIntent, 0); for (Object object : pkgAppsList) { ResolveInfo info = (ResolveInfo) object; File file =new File( info.activityInfo.applicationInfo.publicSourceDir); InputStream myInput; System.out.println("SDSD "+file.toString()); String sdpath = Environment.getExternalStorageDirectory().getPath(); try { File exist=new File(Environment.getExternalStorageState()+file.toString()); System.out.println("1 "+ exist.exists()); // Set the output folder on the Scard File directory = new File(sdpath + "/Back"); // Create the folder if it doesn't exist: if (!directory.exists()) { directory.mkdirs(); } // Set the output file stream up: myInput = new FileInputStream(Environment.getExternalStorageState()+ file.toString()); OutputStream myOutput = new FileOutputStream(directory.getPath()+ file.toString()); // Transfer bytes from the input file to the output file byte[] buffer = new byte[1024]; int length; while ((length = myInput.read(buffer)) > 0) { myOutput.write(buffer, 0, length); } // Close and clear the streams myOutput.flush(); myOutput.close(); myInput.close(); Toast.makeText(MainActivity.this, "Backup Done Succesfully!", Toast.LENGTH_LONG) .show(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } ``` when i run above code it give me message like ``` 01-11 09:52:35.296: W/System.err(966): java.io.FileNotFoundException: /mounted/data/app/com.example.gridwithcheckbox-1.apk (No such file or directory) 01-11 09:52:35.315: W/System.err(966): at org.apache.harmony.luni.platform.OSFileSystem.open(Native Method) 01-11 09:52:35.315: W/System.err(966): at dalvik.system.BlockGuard$WrappedFileSystem.open(BlockGuard.java:232) 01-11 09:52:35.315: W/System.err(966): at java.io.FileInputStream.<init>(FileInputStream.java:80) 01-11 09:52:35.315: W/System.err(966): at java.io.FileInputStream.<init>(FileInputStream.java:132) 01-11 09:52:35.315: W/System.err(966): at com.example.backupdemo.MainActivity.onCreate(MainActivity.java:46) 01-11 09:52:35.315: W/System.err(966): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 01-11 09:52:35.315: W/System.err(966): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611) 01-11 09:52:35.315: W/System.err(966): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663) 01-11 09:52:35.315: W/System.err(966): at android.app.ActivityThread.access$1500(ActivityThread.java:117) 01-11 09:52:35.315: W/System.err(966): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931) 01-11 09:52:35.315: W/System.err(966): at android.os.Handler.dispatchMessage(Handler.java:99) 01-11 09:52:35.315: W/System.err(966): at android.os.Looper.loop(Looper.java:123) 01-11 09:52:35.315: W/System.err(966): at android.app.ActivityThread.main(ActivityThread.java:3683) 01-11 09:52:35.315: W/System.err(966): at java.lang.reflect.Method.invokeNative(Native Method) 01-11 09:52:35.315: W/System.err(966): at java.lang.reflect.Method.invoke(Method.java:507) 01-11 09:52:35.315: W/System.err(966): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 01-11 09:52:35.315: W/System.err(966): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 01-11 09:52:35.315: W/System.err(966): at dalvik.system.NativeStart.main(Native Method) ``` and i also mention permission to manifest file ``` <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> ``` so any idea how can i solve it? Using Tamilan Code i make get logcat like following ``` 01-11 10:46:19.685: V/file--(14637): com.example.tabpager-2.apk----TabPAger 01-11 10:46:19.685: D/file_name--(14637): TabPAger 01-11 10:46:19.685: I/System.out(14637): No such file or directory 01-11 10:46:19.685: V/file--(14637): it.anddev.tutorial-1.apk----KeyboardWidgetTutorial 01-11 10:46:19.695: D/file_name--(14637): KeyboardWidgetTutorial 01-11 10:46:19.695: I/System.out(14637): No such file or directory 01-11 10:46:19.695: V/file--(14637): com.example.crudopration-2.apk----CrudOpration 01-11 10:46:19.695: D/file_name--(14637): CrudOpration 01-11 10:46:19.695: I/System.out(14637): No such file or directory 01-11 10:46:19.705: V/file--(14637): net.leolink.android.simpleinfinitecarousel- 1.apk----SimpleInfiniteCarousel 01-11 10:46:19.705: D/file_name--(14637): SimpleInfiniteCarousel ```

Original source

Related problems