2013-06-18 35 views
0

我想在手机解锁时启动我的应用程序。Android手机解锁时如何启动活动?

下面是我的代码,它可以在手机重新启动时正常工作,但我也希望它在手机解锁时工作。

我该怎么办?

我想在用户每次解锁手机时启动我的应用程序。我在代码中做了什么错误?

<?xml version="1.0" encoding="utf-8"?> 
    <manifest xmlns:android="http://schemas.android.com/apk/res/android" 
     package="com.example.installedapps22" 
     android:versionCode="1" 
     android:versionName="1.0" > 

<uses-sdk 
    android:minSdkVersion="8" 
    android:targetSdkVersion="16" /> 


<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/> 

<application android:icon="@drawable/cherry_icon" android:label="@string/app_name"> 
    <activity android:name=".MainActivity" 
       android:label="@string/app_name"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 


    <receiver android:name=".BootUpReciever" android:enabled="true" 
    android:exported="true"> 

<intent-filter> 
    <action android:name="android.intent.action.BOOT_COMPLETED" /> 
    <action android:name="android.intent.action.SCREEN_OFF" /> 
    <action android:name="android.intent.action.SCREEN_ON" />      
    <category android:name="android.intent.category.DEFAULT" /> 
</intent-filter> 

    </receiver> 






    <activity android:name=".ListInstalledApps" > </activity> 


<activity android:name=".TabsLayoutActivity" /> 
    </application> 

</manifest> 


public class BootUpReciever extends BroadcastReceiver { 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     System.out.println("in broad...."); 

     if ((intent.getAction() != null) && 
      (intent.getAction().equals("android.intent.action.BOOT_COMPLETED"))) 
     { 

     System.out.println("in broadcast receiver....."); 
     Intent i = new Intent(context, MainActivity.class); 
     i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     context.startActivity(i); 
} 

else if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) { 

    Intent i = new Intent(context, MainActivity.class); 
    i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    context.startActivity(i); 
} 

    } 

} 
+1

快速谷歌放弃了这一结果。 http://stackoverflow.com/questions/3446202/android-detect-phone-unlock-event-not-screen-on –

回答

1

检查manifist文件

<activity 
     android:name="com.wallop.tech.MyAndroidAppActivity" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <receiver 
    android:permission="android.permission.RECEIVE_BOOT_COMPLETED" 

    android:name="Startup" > 

    <intent-filter android:enabled="true" android:exported="false"> 
     <action android:name="android.intent.action.SCREEN_ON" /> 
     <action android:name="android.intent.action.BOOT_COMPLETED" /> 
     <action android:name="android.intent.action.USER_PRESENT" /> 
     <action android:name="android.intent.action.SCREEN_OFF"/> 
    </intent-filter> 
</receiver> 
1
import android.content.BroadcastReceiver; 
import android.content.Context; 
import android.content.Intent; 


public class Startup extends BroadcastReceiver { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     if (intent.getAction() != null) { 
      if(intent.getAction().equals(Intent.ACTION_USER_PRESENT)) { 
Intent s = new Intent(context, MyAndroidAppActivity.class); 
        s.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 


        context.startActivity(s); 
      } 
    } 


} 
} 
相关问题