1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

[HILFE] Keine Launcher Activity

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von fr3ak2k2, 12.12.2011.

  1. fr3ak2k2, 12.12.2011 #1
    fr3ak2k2

    fr3ak2k2 Threadstarter Neuer Benutzer

    Beiträge:
    14
    Erhaltene Danke:
    1
    Registriert seit:
    21.10.2011
    Hallo Leute,

    ich versuche gerade eine abgespeckte Version von "Where is my Droid" selbst zu programmieren, und habe dort einige Probleme.

    Bisher ist schon Implementiert dass die SMS Geschichte nach dem Bootup von Android reagiert. Desweiteren werden die SMS schon ausgelesen und auch eine Antwort - SMS zurück geschrieben.
    -> SMS auslesen usw. geht alles über einen Service.

    Was mir nun noch fehlt ist eine Activity, in der ich ein Passwort festlegen kann welches dann mit einkommenden Nachrichten verglichen werden.
    Die Activity ist defakto vorhanden und meiner Meinung nach auch richtig im Manifest eingetragen.
    Ich sitz nun seit Stunden dran und bekomme nur die Meldung "
    [2011-12-12 20:21:48 - BigEye] No Launcher activity found!
    [2011-12-12 20:21:48 - BigEye] The launch will only sync the application package on the device!"

    Ich hoffe dass ich schon auf dem richtigen Weg bin. Wäre echt nice wenn Ihr mir unter die Arme greifen könntet....

    Hier noch der Code:

    Andromanifest.xml
    Code:
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="de.BigEye.AIBCN4"
        android:versionCode="1"
        android:versionName="1.0" >
    
        <uses-sdk android:minSdkVersion="8" />
    
        <uses-permission android:name="android.permission.RECEIVE_SMS" />
        <uses-permission android:name="android.permission.READ_SMS" />
        <uses-permission android:name="android.permission.SEND_SMS" />
        <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
        <uses-permission android:name="android.permission.WRITE_SMS" />
    
        <application
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name" >
            <activity
                android:exported="true"
                android:name=".BigEyeActivity" >
                <intent-filter >
                    <action android:name="android.intent.action.MAIN" />
    
                    <category android:name="android.intent.action.LAUNCHER" />
                </intent-filter>
            </activity>
    
            <service
                android:enabled="true"
                android:name="msgService" >
            </service>
    
            <receiver
                android:enabled="true"
                android:label="@string/app_name"
                android:name="StartIntent"
                android:permission="android.permission.RECEIVE_BOOT_COMPLETED" >
                <intent-filter >
                    <action android:name="android.intent.action.BOOT_COMPLETED" >
                    </action>
                     <category android:name="android.intent.action.HOME" />
                   
                </intent-filter>
            </receiver>
        </application>
    
    </manifest>
    Meine Activity die nicht funzt
    Code:
    package de.BigEye.AIBCN4;
    
    import android.app.Activity;
    import android.app.PendingIntent;
    import android.content.BroadcastReceiver;
    import android.content.Intent;
    import android.content.ServiceConnection;
    import android.os.Bundle;
    import android.telephony.SmsManager;
    import android.telephony.SmsMessage;
    import android.widget.Toast;
    import android.content.Context;
    
    public class BigEyeActivity extends Activity {
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            startService(new Intent(this,msgService.class));
            
        }
    
        @Override
        protected void onDestroy() {
            // TODO Auto-generated method stub
            startService(new Intent(this, msgService.class));
            super.onDestroy();
        }
    
        @Override
        protected void onPause() {
            // TODO Auto-generated method stub
            startService(new Intent(this,msgService.class));
            
            super.onPause();
        }
    
        @Override
        protected void onResume() {
            // TODO Auto-generated method stub
            stopService(new Intent(this,msgService.class));
            super.onResume();
        }
    
        @Override
        protected void onStart() {
            // TODO Auto-generated method stub
            stopService(new Intent(this, msgService.class));
            super.onStart();
        }
    
        @Override
        protected void onStop() {
            startService(new Intent(this,msgService.class));
            super.onStop();
        }
    }
    Mein Service
    Code:
    package de.BigEye.AIBCN4;
    
    import android.app.PendingIntent;
    import android.app.Service;
    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    import android.content.IntentFilter;
    import android.os.Bundle;
    import android.os.IBinder;
    import android.telephony.SmsManager;
    import android.telephony.SmsMessage;
    import android.util.Log;
    import android.widget.Toast;
    
    public class msgService extends Service {
        
        
        protected static final String SMS_EMPFANGEN = "android.provider.Telephony.SMS_RECEIVED";
    
        protected String className = this.getClass().getName();
        protected int toastLength = Toast.LENGTH_SHORT;
    
        BroadcastReceiver receiveSMS = new BroadcastReceiver() {
    
            @Override
            public void onReceive(Context context, Intent intent) {
                //Log.i("INCOMINGSMSRECEIVER IS LISTENING", intent.getAction());
                if (intent.getAction().equals(SMS_EMPFANGEN)) {
                    Bundle extras = intent.getExtras();
                    
                    if (extras != null) {
                        Object[] pdus = (Object[]) extras.get("pdus");
                        SmsMessage[] messages = new SmsMessage[pdus.length];
                        for (int i = pdus.length; --i >= 0;) {
                            messages[i] = SmsMessage
                                    .createFromPdu((byte[]) pdus[i]);
                        }
                        // show first message
                        Toast toast = Toast.makeText(context, "SMS EMPFANGEN: "
                                + messages[0].getMessageBody(), Toast.LENGTH_LONG);
                        toast.show();
                        for (SmsMessage message : messages) {
    
                            // Toast.makeText()
                            final String msgBody = new String(message
                                    .getMessageBody().trim());
    
                            Toast.makeText(context, "Will senden....",
                                    Toast.LENGTH_SHORT).show();
                            SmsManager smsManager = SmsManager.getDefault();
                            Intent smsVersandt = new Intent("ACTION_SMS_SENT");
                            PendingIntent pendingIntent = PendingIntent
                                    .getBroadcast(context, 123, smsVersandt, 0);
                            smsManager.sendTextMessage(
                                    message.getOriginatingAddress(), null,
                                    "Hab die Nachricht bekommen", pendingIntent,
                                    pendingIntent);
                            Toast.makeText(context, "Geschickt", Toast.LENGTH_SHORT)
                                    .show();
                            Intent serviceIntent = new Intent(context,
                                    msgService.class);
                            serviceIntent.setAction("SMS.service.msgService");
                            context.startService(serviceIntent);
    
                        }
                    }
                }
    
            }
        };
    
        @Override
        public IBinder onBind(Intent arg0) {
    
            // TODO Auto-generated method stub
            return null;
        }
    
        @Override
        public void onCreate() {
            Toast.makeText(this, "hello service on Create()!", Toast.LENGTH_LONG)
                    .show();
            getApplicationContext().registerReceiver(receiveSMS, new IntentFilter(SMS_EMPFANGEN));
            super.onCreate();
        }
    
        @Override
        public void onDestroy() {
            // TODO Auto-generated method stub
            getApplicationContext().unregisterReceiver(receiveSMS);
            super.onDestroy();
        }
    
        @Override
        public void onStart(Intent intent, int startId) {
            Toast.makeText(this, "hello service on start()!", Toast.LENGTH_LONG)
                    .show();
            getApplicationContext().registerReceiver(receiveSMS, new IntentFilter(SMS_EMPFANGEN));
    
            super.onStart(intent, startId);
        }
    
    }
    
    BroadcastReceiver um Service nach Boot zu starten

    Code:
    package de.BigEye.AIBCN4;
    
    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    
    public class StartIntent extends BroadcastReceiver {
        
        @Override
        public void onReceive(Context context, Intent intent) {
            Intent startIntent = new Intent(context, msgService.class);
            startIntent.setFlags(Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
            context.startService(startIntent);
        }
        
    }
    
    Das wars erst mal ;) So long
     

Diese Seite empfehlen