Autore Topic: Problema passaggio di parametri  (Letto 1419 volte)

Offline lars87

  • Nuovo arrivato
  • *
  • Post: 19
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    htc sensation xe
  • Sistema operativo:
    Ubuntu 11.04, Windows 7
Problema passaggio di parametri
« il: 11 Ottobre 2012, 20:32:55 CEST »
0
Salve a tutti, per voi potrà essere banale, ma per me dopo 10 ora di programmazione  è uno scoglio:
Codice (Java): [Seleziona]
 label=buffer.toString();
                                String [] arr = label.split(",");
                       primainfo=arr[0];
                       secondainfo=arr[1];

 if(str.compareTo(primainfo.toString())==0)  { // sottointeso che ho il nome del package
                                str=pack.applicationInfo.loadLabel(getPackageManager()).toString();//mi prendo la sua label
                                if(str.compareTo(secondainfo.toString())==0){
                                control=true;}
                                }
if(control==true){
                            Uri packageURI = Uri.parse(primainfo.toString());
                                Intent uninstallIntent = new Intent(Intent.ACTION_DELETE,packageURI );
                                startActivity(uninstallIntent);// disinstalla il malware
                        }
                        else
                                Toast.makeText(getApplicationContext(), "ciao!", Toast.LENGTH_LONG).show();
lasciando perdere che sono pezzi di codice quindi non hanno senso visti così, il mio problema è che se passo la vera e propria stringa fra virgolette allora tutto funziona, ma appena voglio generalizzare il tutto perchè primainfo e secondainfo possono cambiare e quindi faccio il toString() non mi da errore ma non mi fa il matching della vera stringa.
Ho provato anche senza toString().
Grazie!

Offline TheTodd

  • Utente junior
  • **
  • Post: 58
  • Respect: +3
    • Mostra profilo
  • Dispositivo Android:
    samsung gs2
  • Play Store ID:
    sdmdev
  • Sistema operativo:
    window xp
Re:Problema passaggio di parametri
« Risposta #1 il: 12 Ottobre 2012, 11:50:42 CEST »
0
se provi a postare la classe forse si capisce meglio ...

Offline lars87

  • Nuovo arrivato
  • *
  • Post: 19
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    htc sensation xe
  • Sistema operativo:
    Ubuntu 11.04, Windows 7
Re:Problema passaggio di parametri
« Risposta #2 il: 12 Ottobre 2012, 13:51:01 CEST »
0
Scusa hai ragione:
Codice (Java): [Seleziona]
public class prova extends Activity {

    static final int CUSTOM_DIALOG = 0;
    static final int CONFIRM_DIALOG = 0;
        public static final int GET_ACTIVITIES=0;
        String primainfo=null;
        String secondainfo=null;
        String label=null;

    Button button;
    Button esc;
    AlertDialog alertDialog;

   
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_myantivirusdroid);
       
   
       
       
       
     
        String str3=null;
        TextView tv1 = (TextView)findViewById(R.id.textView2);
               boolean proc=false;
                 ActivityManager manager = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);
                List<RunningAppProcessInfo> processes = manager.getRunningAppProcesses();
                for (RunningAppProcessInfo process : processes) {
                        str3=process.processName;
                       
                                //tv1.append(str3);
                                }
                       
               
       
   
     // Creo un semplice bottone che faccia visualizzare la finestra di dialogo
        button = (Button) findViewById(R.id.button1);
        button.setOnClickListener(new OnClickListener(){
            public void onClick(View v) {
                 
                   
               
                showDialog(CUSTOM_DIALOG);
            }
        });
     
    }
    protected Dialog onCreateDialog(int id) {
        Dialog dialog;
        switch(id) {
        case CONFIRM_DIALOG:
                AlertDialog.Builder builder = new AlertDialog.Builder(this);
                builder.setMessage("org.me.application1! is a malware.It has been identified as Trojan.Android.Fakeplayer.a or MoviePlayer!");
                builder.setCancelable(false);
                builder.setPositiveButton("Search and Uninstall", new DialogInterface.OnClickListener() {
                       
                        public void onClick(DialogInterface dialog, int id) {
                                String str=null;
                        String[] str2=null;
                        TextView tv = (TextView)findViewById(R.id.textView2);
                        boolean control=false;
                       
                       
                               
                        TextView tv2 = (TextView)findViewById(R.id.textView2);
                        XmlResourceParser parser = getResources().getXml(R.xml.malware);
                                // Creiamo uno StringBuilder per il contenuto
                                StringBuilder buffer = new StringBuilder();
                                try {
                                        // Otteniamo il tipo di evento letto dal parser
                                        int eventType = parser.getEventType();
                                        // Continuiamo fino alla fine del documento
                                        String pname = null;
                                        String applabel = null;
                                        String title = null;
                                        while (eventType != XmlResourceParser.END_DOCUMENT) {
                                                if (eventType == XmlResourceParser.START_TAG) {
                                                        // Se il tag che viene aperto è quello di danger
                                                        // ne prendiamo il valore dell'attributo pname
                                                        String tagName = parser.getName();
                                                        if ("danger".equals(tagName)) {
                                                                // Si tratta del tag relativo ad un libro
                                                                // ne prendiamo l'attributo packagename
                                                               
                                                                pname = parser.getAttributeValue(0);
                                                               
                                                               
                                                        } else {
                                                                // Non e' il tag book
                                                        }
                                                } else if (eventType == XmlResourceParser.TEXT) {
                                                        // Può solo essere il permesso associato al malware
                                                        title = parser.getText();
                                                        // Abbiamo concluso un testo per cui appendiamo
                                                        // isbn e titolo
                                                        buffer.append(pname).append(title).append("\n");
                                                }
                                                // Andiamo avanti
                                                eventType = parser.next();
                                        }
                                } catch (XmlPullParserException e) {
                                        e.printStackTrace();
                                } catch (IOException e) {
                                        e.printStackTrace();
                                }
                                // Impostiamo il testo ottenuto come testo della textView
                                //tv.setText(buffer.toString());
                               
                               
                                 label=buffer.toString();
                                String [] arr = label.split(",");
                       primainfo=arr[0];
                       secondainfo=arr[1];
                           tv2.append( " => " +primainfo);
                            tv2.append( " => " +secondainfo);
                               
                                List<PackageInfo> packagess = getPackageManager().getInstalledPackages(0);
                        for(int i=0;i<packagess.size();i++)
                        {
                                PackageInfo pack = packagess.get(i);
                                str=pack.packageName; //nomi dei package installati
                               
                            if(str.compareTo(primainfo.toString())==0)  { // sottointeso che ho il nome del package
                                str=pack.applicationInfo.loadLabel(getPackageManager()).toString();//mi prendo la sua label
                                if(str.compareTo(secondainfo.toString())==0){
                                control=true;}
                                }
                         
                                int p = getPackageManager().checkPermission("android.permission.SEND_SMS",str);
                               
                                if(p == PackageManager.PERMISSION_GRANTED) {
                                  tv.append("2");//controllo dei permessi
                                }
                                else if(p==PackageManager.PERMISSION_DENIED){
                                        tv.append("1");
                                }
                               
                       
                         }
                               
                     
                               
                        if(control==true){
                            Uri packageURI = Uri.parse(primainfo.toString());
                                Intent uninstallIntent = new Intent(Intent.ACTION_DELETE,packageURI );
                                startActivity(uninstallIntent);// disinstalla il malware
                        }
                        else
                                Toast.makeText(getApplicationContext(), "ciao!", Toast.LENGTH_LONG).show();
                                prova.this.finish();
                               
                              ;
                                        }
                        });
                builder.setNegativeButton("No", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int id) {
                            dialog.dismiss(); // Chiudiamo la finestra di dialogo
                            }
                });
                builder.setNeutralButton("Close", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int id) {
                              dialog.dismiss(); // Chiudiamo la finestra di dialogo
                              }
                });
                dialog = builder.create();
            break;
        default:
            dialog = null;
        }
        return dialog;
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_myantivirusdroid, menu);
        return true;
    }
    protected void onRestart() {
           super.onRestart();
         
         }
   
}

Offline TheTodd

  • Utente junior
  • **
  • Post: 58
  • Respect: +3
    • Mostra profilo
  • Dispositivo Android:
    samsung gs2
  • Play Store ID:
    sdmdev
  • Sistema operativo:
    window xp
Re:Problema passaggio di parametri
« Risposta #3 il: 12 Ottobre 2012, 14:52:53 CEST »
0
anche altre cose indispensabili come
Codice (XML): [Seleziona]
R.xml.malware

Offline lars87

  • Nuovo arrivato
  • *
  • Post: 19
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    htc sensation xe
  • Sistema operativo:
    Ubuntu 11.04, Windows 7
Re:Problema passaggio di parametri
« Risposta #4 il: 12 Ottobre 2012, 15:27:43 CEST »
0
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="UTF-8"?>
<malware>
        <danger pname="org.me.androidapplication1, MoviePlayer">android.permission.SEND_SMS</danger>
       
</malware>

Offline TheTodd

  • Utente junior
  • **
  • Post: 58
  • Respect: +3
    • Mostra profilo
  • Dispositivo Android:
    samsung gs2
  • Play Store ID:
    sdmdev
  • Sistema operativo:
    window xp
Re:Problema passaggio di parametri
« Risposta #5 il: 12 Ottobre 2012, 16:24:08 CEST »
0
Lars, ma cosa è che non ti funziona? ho provato e, quando raggiunge il package corrente, il
Codice (Java): [Seleziona]
compareTo() torna 0, cosa ti aspetteresti?

Offline lars87

  • Nuovo arrivato
  • *
  • Post: 19
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    htc sensation xe
  • Sistema operativo:
    Ubuntu 11.04, Windows 7
Re:Problema passaggio di parametri
« Risposta #6 il: 12 Ottobre 2012, 18:13:53 CEST »
0
Il problema è quando passo packageURI all'Intent per Action_delete, se faccio a parse("org.me.androidapplication1")" mi trova il package da disinstallare, se gli passo primainfo.toString() non funziona.