so have spinner able select different servers , write selected data text file retrieved other apps. on own working fine.
i needed add part switch confirm true or false encryption, , aim store string called later in file output stream.
i seem have got confused somewhere adding 2 separate strings in fos , 1 way tried gave me , error regarding 'byte' + 'byte' not being allowed. way have @ moment runs error in logcats
so need finding part broken , why won't accept strings , how fix it
the logs
06-07 03:05:05.508 18344-18344/com.dooves.spinnertest w/resourcesmanager: gettoplevelresources: /data/app/com.dooves.spinnertest-1/base.apk / 1.0 running in com.dooves.spinnertest rsrc of package null 06-07 03:05:05.528 18344-18344/com.dooves.spinnertest w/system: classloader referenced unknown path: /data/app/com.dooves.spinnertest-1/lib/arm 06-07 03:05:05.558 18344-18344/com.dooves.spinnertest w/art: failed open zip archive '/system/framework/com.qti.location.sdk.jar': i/o error 06-07 03:05:06.768 18344-18344/com.dooves.spinnertest w/system: classloader referenced unknown path: /data/app/com.dooves.spinnertest-1/lib/arm 06-07 03:05:06.918 18344-18344/com.dooves.spinnertest w/resourcesmanager: gettoplevelresources: /data/app/com.dooves.spinnertest-1/base.apk / 1.0 running in com.dooves.spinnertest rsrc of package null 06-07 03:05:06.918 18344-18344/com.dooves.spinnertest w/resourcesmanager: gettoplevelresources: /data/app/com.dooves.spinnertest-1/base.apk / 1.0 running in com.dooves.spinnertest rsrc of package null 06-07 03:05:07.068 18344-18344/com.dooves.spinnertest w/art: before android 4.1, method android.graphics.porterduffcolorfilter android.support.graphics.drawable.vectordrawablecompat.updatetintfilter(android.graphics.porterduffcolorfilter, android.content.res.colorstatelist, android.graphics.porterduff$mode) have incorrectly overridden package-private method in android.graphics.drawable.drawable 06-07 03:05:07.208 18344-18344/com.dooves.spinnertest i/switch: mode attached=false laidout=false 06-07 03:05:07.208 18344-18344/com.dooves.spinnertest i/switch: mode attached=false laidout=false 06-07 03:05:07.248 18344-18344/com.dooves.spinnertest d/secwifidisplayutil: metadata value : none 06-07 03:05:07.248 18344-18344/com.dooves.spinnertest d/viewrootimpl: #1 mview = com.android.internal.policy.phonewindow$decorview{95a1ffb i.e...... r.....id 0,0-0,0} 06-07 03:05:07.248 18344-18547/com.dooves.spinnertest d/openglrenderer: use egl_swap_behavior_preserved: true 06-07 03:05:07.318 18344-18547/com.dooves.spinnertest i/adreno-egl: <qegldrvapi_eglinitialize:379>: egl 1.4 qualcomm build: (ia10634f51b) opengl es shader compiler version: e031.29.00.00 build date: 01/28/16 thu local branch: ss remote branch: local patches: reconstruct branch: 06-07 03:05:07.328 18344-18547/com.dooves.spinnertest d/libegl: eglinitialize egldisplay = 0x9f28b7c4 06-07 03:05:07.328 18344-18547/com.dooves.spinnertest i/openglrenderer: initialized egl, version 1.4 06-07 03:05:07.438 18344-18344/com.dooves.spinnertest w/displaylistcanvas: displaylistcanvas started on unbinded rendernode (without mowningview) 06-07 03:05:07.568 18344-18344/com.dooves.spinnertest d/viewrootimpl: msg_resized_report: ci=rect(0, 72 - 0, 0) vi=rect(0, 72 - 0, 0) or=1 06-07 03:05:07.598 18344-18344/com.dooves.spinnertest i/timeline: timeline: activity_idle id: android.os.binderproxy@ec4ad8a time:38728975 06-07 03:05:14.398 18344-18344/com.dooves.spinnertest d/viewrootimpl: viewpostimeinputstage processpointer 0 06-07 03:05:14.528 18344-18344/com.dooves.spinnertest d/viewrootimpl: viewpostimeinputstage processpointer 1 06-07 03:05:14.568 18344-18344/com.dooves.spinnertest d/abslistview: motionrecognitionmanager 06-07 03:05:14.578 18344-18344/com.dooves.spinnertest e/motionrecognitionmanager: mscontextservice = android.hardware.scontext.iscontextservice$stub$proxy@ebd8dc7 06-07 03:05:14.578 18344-18344/com.dooves.spinnertest e/motionrecognitionmanager: motionservice = com.samsung.android.motion.imotionrecognitionservice$stub$proxy@6d22ff4 06-07 03:05:14.578 18344-18344/com.dooves.spinnertest e/motionrecognitionmanager: motionservice = com.samsung.android.motion.imotionrecognitionservice$stub$proxy@6d22ff4 06-07 03:05:14.588 18344-18344/com.dooves.spinnertest d/viewrootimpl: #1 mview = android.widget.popupwindow$popupdecorview{1528992 v.e...... ......i. 0,0-0,0} 06-07 03:05:14.668 18344-18344/com.dooves.spinnertest w/displaylistcanvas: displaylistcanvas started on unbinded rendernode (without mowningview) 06-07 03:05:14.678 18344-18344/com.dooves.spinnertest d/viewrootimpl: msg_resized_report: ci=rect(0, 0 - 0, 0) vi=rect(0, 0 - 0, 0) or=1 06-07 03:05:15.398 18344-18344/com.dooves.spinnertest d/viewrootimpl: viewpostimeinputstage processpointer 0 06-07 03:05:15.518 18344-18344/com.dooves.spinnertest d/viewrootimpl: viewpostimeinputstage processpointer 1 06-07 03:05:15.938 18344-18547/com.dooves.spinnertest d/openglrenderer: endallactiveanimators on 0xadcbd280 (listpopupwindow$dropdownlistview) handle 0x9df14170 06-07 03:05:15.938 18344-18344/com.dooves.spinnertest d/viewrootimpl: #3 mview = null 06-07 03:05:16.378 18344-18344/com.dooves.spinnertest d/viewrootimpl: viewpostimeinputstage processpointer 0 06-07 03:05:16.478 18344-18344/com.dooves.spinnertest d/viewrootimpl: viewpostimeinputstage processpointer 1 06-07 03:05:18.278 18344-18344/com.dooves.spinnertest d/viewrootimpl: viewpostimeinputstage processpointer 0 06-07 03:05:18.388 18344-18344/com.dooves.spinnertest d/viewrootimpl: viewpostimeinputstage processpointer 1 06-07 03:05:18.398 18344-18344/com.dooves.spinnertest w/system.err: java.io.unsupportedencodingexception: &true 06-07 03:05:18.408 18344-18344/com.dooves.spinnertest w/system.err: @ java.nio.charset.charset.fornameuee(charset.java:322) 06-07 03:05:18.408 18344-18344/com.dooves.spinnertest w/system.err: @ java.lang.string.getbytes(string.java:534) 06-07 03:05:18.408 18344-18344/com.dooves.spinnertest w/system.err: @ com.dooves.spinnertest.mainactivity.savesettings(mainactivity.java:114) 06-07 03:05:18.408 18344-18344/com.dooves.spinnertest w/system.err: @ java.lang.reflect.method.invoke(native method) 06-07 03:05:18.408 18344-18344/com.dooves.spinnertest w/system.err: @ android.support.v7.app.appcompatviewinflater$declaredonclicklistener.onclick(appcompatviewinflater.java:284) 06-07 03:05:18.408 18344-18344/com.dooves.spinnertest w/system.err: @ android.view.view.performclick(view.java:5697) 06-07 03:05:18.408 18344-18344/com.dooves.spinnertest w/system.err: @ android.widget.textview.performclick(textview.java:10826) 06-07 03:05:18.408 18344-18344/com.dooves.spinnertest w/system.err: @ android.view.view$performclick.run(view.java:22526) 06-07 03:05:18.408 18344-18344/com.dooves.spinnertest w/system.err: @ android.os.handler.handlecallback(handler.java:739) 06-07 03:05:18.408 18344-18344/com.dooves.spinnertest w/system.err: @ android.os.handler.dispatchmessage(handler.java:95) 06-07 03:05:18.408 18344-18344/com.dooves.spinnertest w/system.err: @ android.os.looper.loop(looper.java:158) 06-07 03:05:18.408 18344-18344/com.dooves.spinnertest w/system.err: @ android.app.activitythread.main(activitythread.java:7224) 06-07 03:05:18.408 18344-18344/com.dooves.spinnertest w/system.err: @ java.lang.reflect.method.invoke(native method) 06-07 03:05:18.408 18344-18344/com.dooves.spinnertest w/system.err: @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:1230) 06-07 03:05:18.408 18344-18344/com.dooves.spinnertest w/system.err: @ com.android.internal.os.zygoteinit.main(zygoteinit.java:1120) 06-07 03:05:18.408 18344-18344/com.dooves.spinnertest w/system.err: caused by: java.nio.charset.illegalcharsetnameexception: &true 06-07 03:05:18.408 18344-18344/com.dooves.spinnertest w/system.err: @ java.nio.charset.charset.checkcharsetname(charset.java:197) 06-07 03:05:18.408 18344-18344/com.dooves.spinnertest w/system.err: @ java.nio.charset.charset.forname(charset.java:295) 06-07 03:05:18.408 18344-18344/com.dooves.spinnertest w/system.err: @ java.nio.charset.charset.fornameuee(charset.java:320) 06-07 03:05:18.408 18344-18344/com.dooves.spinnertest w/system.err: ... 14 more
from unsure change correct this. if remove '&' string same logcat saying 'true' rather '&true'
here code
public class mainactivity extends appcompatactivity { spinner spinner; arrayadapter<charsequence> adapter; string selectedserver; switch passswitch; string passwordencryption; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); spinner = (spinner) findviewbyid(r.id.spinner); adapter = arrayadapter.createfromresource(this, r.array.serverurl, android.r.layout.simple_spinner_item); adapter.setdropdownviewresource(android.r.layout.simple_spinner_dropdown_item); spinner.setadapter(adapter); passswitch = (switch) findviewbyid(r.id.passencrypt); spinner.setonitemselectedlistener(new adapterview.onitemselectedlistener() { @override public void onitemselected(adapterview<?> parent, view view, int position, long id) { selectedserver = parent.getitematposition(position).tostring(); } @override public void onnothingselected(adapterview<?> parent) { } }); passswitch.setoncheckedchangelistener(new compoundbutton.oncheckedchangelistener() { @override public void oncheckedchanged(compoundbutton buttonview, boolean ischecked) { if (ischecked) { passwordencryption = "&true"; } else { passwordencryption = "&false"; } } }); } public void savesettings(view view) { file txtfolder = new file(environment.getexternalstoragedirectory().getabsolutepath()+"/myfolder/"); if (!txtfolder.exists()) { txtfolder.mkdir(); } file file = new file(txtfolder, "setting.txt"); string.valueof(selectedserver.getbytes()); string.valueof(passwordencryption.getbytes()); try { fileoutputstream fos = new fileoutputstream(file); fos.write(selectedserver.getbytes(passwordencryption)); fos.close(); toast.maketext(getapplicationcontext(),"settings saved", toast.length_long).show(); } catch (filenotfoundexception e) { e.printstacktrace(); } catch (ioexception e) { e.printstacktrace(); } } }
the spinner populated string array in strings.xml file , contain 'server1, server2, server3, server4'. end result should show saved setting.txt file eg, server1&false or server3&true.
any appreciated
dave
this line causing issue:
fos.write(selectedserver.getbytes(passwordencryption));
string.getbytes(string charset)
requires valid charset
parameter such "utf8". instead, passing passwordencryption
equals "$true" or "$false". neither of valid charset.
if fos.write(selectedserver + passwordencryption);
output should server1&false