author | kejun.gao <kejun.gao@amlogic.com> | 2012-07-09 06:25:49 (GMT) |
---|---|---|
committer | fred.chen <fred.chen@amlogic.com> | 2012-07-17 12:34:49 (GMT) |
commit | 4c8c6f4f7176cf786ea6e2ba4d9cb111e3c7ef3b (patch) | |
tree | 7cb7b24887544a91e0228c065a8a6d353f9ed784 | |
parent | f769b9a00e486a5128058cea2ac04eabf2638f64 (diff) | |
download | PPPoE-4c8c6f4f7176cf786ea6e2ba4d9cb111e3c7ef3b.zip PPPoE-4c8c6f4f7176cf786ea6e2ba4d9cb111e3c7ef3b.tar.gz PPPoE-4c8c6f4f7176cf786ea6e2ba4d9cb111e3c7ef3b.tar.bz2 |
1. Add MyPppoeService to handle ACTION_SCREEN_OFF
2. When PppoeBroadcastReceiver receives ACTION_BOOT_COMPLETED, it starts service MyPppoeService
-rwxr-xr-x | AndroidManifest.xml | 2 | ||||
-rwxr-xr-x | src/com/amlogic/PPPoE/MyPppoeService.java | 87 | ||||
-rwxr-xr-x | src/com/amlogic/PPPoE/PppoeBroadcastReceiver.java | 7 |
3 files changed, 96 insertions, 0 deletions
diff --git a/AndroidManifest.xml b/AndroidManifest.xml index f9f6c9f..f197bb5 100755 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -63,10 +63,12 @@ <receiver android:name=".PppoeBroadcastReceiver"> <intent-filter> + <action android:name="android.intent.action.BOOT_COMPLETED"/> <action android:name="android.net.ethernet.ETH_STATE_CHANGED"/> <action android:name="android.net.conn.CONNECTIVITY_CHANGE"/> </intent-filter> </receiver> + <service android:name=".MyPppoeService" /> </application> </manifest> diff --git a/src/com/amlogic/PPPoE/MyPppoeService.java b/src/com/amlogic/PPPoE/MyPppoeService.java new file mode 100755 index 0000000..fd4d56b --- a/dev/null +++ b/src/com/amlogic/PPPoE/MyPppoeService.java @@ -0,0 +1,87 @@ +package com.amlogic.PPPoE; + +import android.app.Notification; +import android.app.NotificationManager; +import android.app.PendingIntent; +import android.app.Service; +import android.app.ActivityManager; +import android.content.ComponentName; +import android.content.Intent; +import android.content.BroadcastReceiver; +import android.content.IntentFilter; +import android.content.Context; +import android.os.Handler; +import android.os.IBinder; +import android.os.Message; +import android.util.Log; +import com.amlogic.pppoe.PppoeOperation; + + +public class MyPppoeService extends Service +{ + private static final String TAG = "MyPppoeService"; + private NotificationManager mNM; + private Handler mHandler; + private PppoeOperation operation = null; + + + @Override + public void onCreate() { + Log.d(TAG, ">>>>>>onCreate"); + + mNM = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); + + mHandler = new DMRHandler(); + + /* start check after 5s */ + mHandler.sendEmptyMessageDelayed(0, 5000); + + IntentFilter f = new IntentFilter(); + + f.addAction(Intent.ACTION_SHUTDOWN); + f.addAction(Intent.ACTION_SCREEN_OFF); + registerReceiver(mShutdownReceiver, new IntentFilter(f)); + + } + + @Override + public void onDestroy() { + //unregisteReceiver + unregisterReceiver(mShutdownReceiver); + // Cancel the persistent notification. + } + + @Override + public IBinder onBind(Intent intent) { + return null; + } + + + private class DMRHandler extends Handler + { + @Override + public void handleMessage(Message msg) { + super.handleMessage(msg); + + Log.d(TAG, "handleMessage"); + /* check per 10s */ + mHandler.sendEmptyMessageDelayed(0, 1000000); + } + } + + +private BroadcastReceiver mShutdownReceiver = + new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + Log.d(TAG , "onReceive :" +intent.getAction()); + + if ((Intent.ACTION_SCREEN_OFF).equals(intent.getAction())) { + operation = new PppoeOperation(); + operation.disconnect(); + } + } +}; + +} + diff --git a/src/com/amlogic/PPPoE/PppoeBroadcastReceiver.java b/src/com/amlogic/PPPoE/PppoeBroadcastReceiver.java index 3e4c5b8..26e9563 100755 --- a/src/com/amlogic/PPPoE/PppoeBroadcastReceiver.java +++ b/src/com/amlogic/PPPoE/PppoeBroadcastReceiver.java @@ -18,6 +18,8 @@ import android.os.SystemProperties; public class PppoeBroadcastReceiver extends BroadcastReceiver {
private static final String TAG = "PppoeBroadcastReceiver";
+ private static final String ACTION_BOOT_COMPLETED =
+ "android.intent.action.BOOT_COMPLETED";
private Handler mHandler;
private boolean mAutoDialFlag = false;
@@ -82,6 +84,11 @@ public class PppoeBroadcastReceiver extends BroadcastReceiver { mPassword = getPassword(context);
Log.d(TAG , "Password = " + mPassword);
+ if (ACTION_BOOT_COMPLETED.equals(intent.getAction())) {
+ context.startService(new Intent(context,
+ MyPppoeService.class));
+ }
+
if (null == mInterfaceSelected
|| !mAutoDialFlag
|| null == mUserName
|