CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: bluemask con ben 1 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: megthebest con ben 5 Thanks ricevuti negli ultimi sette giorni
Utente del mese: megthebest con ben 31 Thanks ricevuti nell'ultimo mese

Visualizzazione dei risultati da 1 a 1 su 1
Discussione:

Parsing Feed Rss su Virtual Device funzione, su Galaxy S e Y no

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #1
    Androidiano


    Registrato dal
    Jan 2012
    Località
    Catanzaro
    Messaggi
    63
    Smartphone
    Wiko Raimbow

    Ringraziamenti
    11
    Ringraziato 1 volta in 1 Post
    Predefinito

    Parsing Feed Rss su Virtual Device funzione, su Galaxy S e Y no

    Salve a tutti, volevo parlarvi di un problema strano.
    Ho trovato su internet una guida dove spiegava come realizzare un parser per feed rss.
    Seguendo la guida, sono riuscito a scriver un parser che mette in una listview i feed rss.
    Ho collegato il Galaxy S un Debug mode, mentre al Galaxy Y ho solo mandato l'Apk firmato via bluetooth.
    Nel Virtual Device il parser funziona, sul Galaxy S no. Mi Da' un errore come se non ci fosse connessione ad internet, eppure la wifi sul Galaxy S è collegata al router e funziona.

    Vi allego il codice Java e il logcat del Galaxy S

    layour main
    x
     
    1
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    2
        xmlns:tools="http://schemas.android.com/tools"
    3
        android:layout_width="match_parent"
    4
        android:layout_height="match_parent" >
    5
    6
        <ListView
    7
            android:id="@+id/listMainView"
    8
            android:layout_width="fill_parent"
    9
            android:layout_height="wrap_content" >
    10
        </ListView>
    11
    12
    </RelativeLayout>


    Classi utilizzate:
    24
     
    1
    2
    public class RssItem {
    3
        
    4
        private String title;
    5
        
    6
        private String link;
    7
        public String getTitle() {
    8
            return title;
    9
        }
    10
        public void setTitle(String title) {
    11
            this.title = title;
    12
        }
    13
        public String getLink() {
    14
            return link;
    15
        }
    16
        public void setLink(String link) {
    17
            this.link = link;
    18
        }
    19
        @Override
    20
        public String toString() {
    21
            return title;
    22
        }
    23
    }
    24


    55
     
    1
    2
    public class RssParseHandler extends DefaultHandler {
    3
         
    4
        private List<RssItem> rssItems;
    5
    6
        private RssItem currentItem;
    7
    8
        private boolean parsingTitle;
    9
    10
        private boolean parsingLink;
    11
     
    12
        public RssParseHandler() {
    13
            rssItems = new ArrayList<RssItem>();
    14
        }
    15
    16
        public List<RssItem> getItems() {
    17
            return rssItems;
    18
        }
    19
    20
        @Override
    21
        public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
    22
                       if ("item".equals(qName)) {
    23
                currentItem = new RssItem();
    24
            } else if ("title".equals(qName)) {
    25
                parsingTitle = true;
    26
            } else if ("link".equals(qName)) {
    27
                parsingLink = true;
    28
            }
    29
        }
    30
    31
        @Override
    32
        public void endElement(String uri, String localName, String qName) throws SAXException {
    33
            if ("item".equals(qName)) {
    34
                rssItems.add(currentItem);
    35
                currentItem = null;
    36
            } else if ("title".equals(qName)) {
    37
                parsingTitle = false;
    38
            } else if ("link".equals(qName)) {
    39
                parsingLink = false;
    40
            }
    41
        }
    42
        
    43
        @Override
    44
        public void characters(char[] ch, int start, int length) throws SAXException {
    45
            if (parsingTitle) {
    46
                if (currentItem != null)
    47
                    currentItem.setTitle(new String(ch, start, length));
    48
            } else if (parsingLink) {
    49
                if (currentItem != null) {
    50
                    currentItem.setLink(new String(ch, start, length));
    51
                    parsingLink = false;
    52
                }
    53
            }
    54
        }
    55
    }


    15
     
    1
    public class RssReader {
    2
        private String rssUrl;
    3
    4
        public RssReader(String rssUrl) {
    5
            this.rssUrl = rssUrl;
    6
        }
    7
    8
        public List<RssItem> getItems() throws Exception {
    9
            SAXParserFactory factory = SAXParserFactory.newInstance();
    10
            SAXParser saxParser = factory.newSAXParser();
    11
            RssParseHandler handler = new RssParseHandler();
    12
            saxParser.parse(rssUrl, handler);
    13
            return handler.getItems();
    14
        }
    15
    }


    15
     
    1
    2
    public class ListListener implements OnItemClickListener {
    3
        List<RssItem> listItems;
    4
        Activity activity;
    5
        public ListListener(List<RssItem> aListItems, Activity anActivity) {
    6
            listItems = aListItems;
    7
            activity  = anActivity;
    8
        }
    9
     
    10
        public void onItemClick(AdapterView parent, View view, int pos, long id) {
    11
            Intent i = new Intent(Intent.ACTION_VIEW);
    12
            i.setData(Uri.parse(listItems.get(pos).getLink()));
    13
            activity.startActivity(i);
    14
        }
    15
    }


    44
     
    1
    2
    public class MainActivity extends Activity {
    3
    4
        @SuppressLint("ParserError")
    5
        @Override
    6
        public void onCreate(Bundle savedInstanceState) {
    7
            super.onCreate(savedInstanceState);
    8
            setContentView(R.layout.main);
    9
            try {
    10
                RssReader rssReader = new RssReader("http://mic87xp1.altervista.org/wordpress/?feed=rss2");
    11
                ListView itcItems = (ListView) findViewById(R.id.listMainView);
    12
                ArrayAdapter adapter = new ArrayAdapter(this,android.R.layout.simple_list_item_1, rssReader.getItems());
    13
                itcItems.setAdapter(adapter);
    14
                itcItems.setOnItemClickListener(new ListListener(rssReader.getItems(), this));
    15
            } catch (Exception e) {
    16
                Log.e("RssReader", e.getMessage());
    17
                noInternetDialog();
    18
            }
    19
        }
    20
    21
        @Override
    22
        public boolean onCreateOptionsMenu(Menu menu) {
    23
            getMenuInflater().inflate(R.menu.main, menu);
    24
            return true;
    25
        }
    26
        private void noInternetDialog(){
    27
            
    28
            AlertDialog.Builder builder = new AlertDialog.Builder(this);
    29
            builder.setTitle("Errore");
    30
            builder.setMessage("Impossibile trovare il canale Feed Rss.\nControllare la connessione ad internet e eventualmente contattare lo sviluppatore");
    31
            builder.setCancelable(false);
    32
            builder.setPositiveButton("Ok", new OkPositiveButton());
    33
            AlertDialog alert = builder.create();
    34
            alert.show();
    35
    36
        }
    37
        class OkPositiveButton implements DialogInterface.OnClickListener{
    38
            public void onClick(DialogInterface dialog, int which){
    39
                dialog.dismiss();
    40
            }
    41
        }
    42
    43
        
    44
    }


    Logcat Galaxy S:
    codice:
    08-07 21:53:15.044: D/AndroidRuntime(11093): >>>>>> AndroidRuntime START com.android.internal.os.RuntimeInit <<<<<<
    08-07 21:53:15.044: D/AndroidRuntime(11093): CheckJNI is OFF
    08-07 21:53:15.052: D/AndroidRuntime(11093): setted country_code = ITALY
    08-07 21:53:15.052: D/AndroidRuntime(11093): setted sales_code = OMN
    08-07 21:53:15.052: D/AndroidRuntime(11093): readGMSProperty: start
    08-07 21:53:15.052: D/AndroidRuntime(11093): readGMSProperty: already setted!!
    08-07 21:53:15.060: D/AndroidRuntime(11093): readGMSProperty: end
    08-07 21:53:15.076: D/PoliciesMultiplexer(8605): grouping policies by name
    08-07 21:53:15.076: D/PoliciesMultiplexer(8605): grouped policies by name
    08-07 21:53:15.076: D/PoliciesMultiplexer(8605): finding the strongest policies
    08-07 21:53:15.076: D/PoliciesMultiplexer(8605): found the strongest policies
    08-07 21:53:15.076: D/PoliciesMultiplexer(8605): applying policies to the device
    08-07 21:53:15.083: D/ExchangeService(8655): collect eas accounts
    08-07 21:53:15.099: D/ExchangeService(8655): onAccountChanged(): mAccountList size is 1
    08-07 21:53:15.123: I/ExchangeService(8655): updateAccountDb start
    08-07 21:53:15.123: I/ExchangeService(8655): 3: in offpeak=[-2] db interval=[-2]
    08-07 21:53:15.138: D/EmailProvider(8617): getDB first open?false
    08-07 21:53:15.138: D/EmailProvider(8617): get used db ok
    08-07 21:53:15.138: I/ExchangeService(8655): updateAccountDb end
    08-07 21:53:15.138: D/ActivityThread(8617): Loading provider com.android.email.provider;com.android.email.notifier: com.android.email.provider.EmailProvider
    08-07 21:53:15.177: D/PoliciesMultiplexer(8605): update
    08-07 21:53:15.177: D/PoliciesMultiplexer(8605): getAllPolicies
    08-07 21:53:15.185: D/PoliciesMultiplexer(8605): grouping policies by name
    08-07 21:53:15.185: D/PoliciesMultiplexer(8605): grouped policies by name
    08-07 21:53:15.185: D/PoliciesMultiplexer(8605): finding the strongest policies
    08-07 21:53:15.185: D/PoliciesMultiplexer(8605): found the strongest policies
    08-07 21:53:15.185: D/PoliciesMultiplexer(8605): applying policies to the device
    08-07 21:53:15.208: I/ExchangeService(8655): updateAccountDb start
    08-07 21:53:15.208: I/ExchangeService(8655): 3: in offpeak=[-2] db interval=[-2]
    08-07 21:53:15.216: I/ExchangeService(8655): updateAccountDb end
    08-07 21:53:15.240: D/LibQmg_native(11093): register_android_app_LibQmg
    08-07 21:53:15.271: D/AndroidRuntime(11093): Calling main entry com.android.commands.am.Am
    08-07 21:53:15.279: I/power(210): *** acquire_dvfs_lock : lockType : 1  freq : 1008000 
    08-07 21:53:15.279: I/ActivityManager(210): START {intent.toShortString} from pid 11093
    08-07 21:53:15.279: D/PowerManagerService(210): acquireDVFSLockLocked : type : DVFS_MIN_LIMIT  frequency : 1008000  uid : 1000  pid : 210  tag : ActivityManager
    08-07 21:53:15.279: W/ActivityManager(210): mDVFSLock.acquire()
    08-07 21:53:15.294: D/dalvikvm(8605): GC_EXPLICIT freed 363K, 10% free 7795K/8647K, paused 2ms+3ms
    08-07 21:53:15.341: D/KeyguardViewMediator(210): setHidden false
    08-07 21:53:15.357: D/AndroidRuntime(11093): Shutting down VM
    08-07 21:53:15.357: D/ActivityManager(210): Trying to launch applicationName
    08-07 21:53:15.365: D/dalvikvm(11093): GC_CONCURRENT freed 102K, 81% free 509K/2560K, paused 0ms+1ms
    08-07 21:53:15.365: D/jdwp(11093): Got wake-up signal, bailing out of select
    08-07 21:53:15.365: D/dalvikvm(11093): Debugger has detached; object registry had 1 entries
    08-07 21:53:15.373: I/AndroidRuntime(11093): NOTE: attach of thread 'Binder Thread #3' failed
    08-07 21:53:15.373: D/OpenGLRenderer(10353): Flushing caches (mode 1)
    08-07 21:53:15.388: D/KeyguardViewMediator(210): setHidden false
    08-07 21:53:15.412: E/ITCRssReader(10865): Couldn't open http://mic87xp1.altervista.org/wordpress/?feed=rss2
    08-07 21:53:15.427: D/STATUSBAR-StatusBarManagerService(210): setSystemUiVisibility(0x0)
    Nel Manifest ho messo questo permesso:
    2
     
    1
    2
    <uses-permission android:name="android.permission.INTERNET" />


    Forse ne devo aggiungere altri?
    Ultima modifica di mic87xp1; 08-08-12 alle 15:53
    Device: Asus Zenfone 2
    Chuwi HI10 Pro 10.1"


  2.  

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy