F
fr3ak2k2
Neues Mitglied
- 1
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
Meine Activity die nicht funzt
Mein Service
BroadcastReceiver um Service nach Boot zu starten
Das wars erst mal So long
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>
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();
}
}
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);
}
}
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);
}
}