Issue
File file; FileOutputStream fileOutputStream;
final Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
final List pkgAppsList = getPackageManager().queryIntentActivities(mainIntent, 0);
for (Object obj : pkgAppsList) {
ResolveInfo resolveInfo = (ResolveInfo) obj;
PackageInfo packageInfo = null;
try
{
file = new File(Environment.getExternalStorageDirectory(),"MyResearchFile.txt");
FileOutputStream fos = new FileOutputStream(file);
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(fos);
packageInfo = getPackageManager().getPackageInfo(resolveInfo.activityInfo.packageName, PackageManager.GET_PERMISSIONS);
String[] requestedPermissions = packageInfo.requestedPermissions;
final PackageManager pm = getApplicationContext().getPackageManager();
ApplicationInfo ai;
ai = pm.getApplicationInfo(resolveInfo.activityInfo.packageName,0);
final String applicationName = (String) (ai != null ? pm.getApplicationLabel(ai) : "unknown");
for (int i = 0,j=0; i < requestedPermissions.length; i++,j++)
{
if(requestedPermissions[i].contains("READ_CONTACTS") )
{
outputStreamWriter.append((applicationName + " requested " + requestedPermissions[i]).toString());
}
if(requestedPermissions[i].contains("WRITE_CONTACTS"))
{
outputStreamWriter.append((applicationName + " requested " + requestedPermissions[i]).toString());
}
}
outputStreamWriter.flush();
outputStreamWriter.close();
Question : append function is not appending text to text file. I am working on an Android Application which writes all permission details to a text file.
Solution
Use the constructor with the append flag
FileOutputStream fos = new FileOutputStream(file, true);
Answered By - Reimeus
Answer Checked By - Senaida (JavaFixing Volunteer)