2012-03-12 76 views

回答

5

检查这: OtaStartupReceiver

这个类是在android源码电话APK源代码,请检查方法private boolean shouldPostpone(Context context)

在提供手机初始化向导(如谷歌 安装向导)设备,我们允许延缓CDMA OTA设置,所以它可以完成我n一个 单个向导。向导是负责

(1)禁止本身一旦它已被运行及/或

(2)设置“device_provisioned”标志的东西非零和

(3)调用OTA设置与下面的操作。注意:典型的手机 初始化向导将自己安装为主屏幕 (类别为“android.intent.category.HOME”),默认优先级高于 。向导应该在 完成时设置'device_provisioned',并使用 PackageManager.setComponentEnabledSetting()将其自身关闭,然后开始主页 屏幕。

如上图所示:

你可以在AndroidManifest.xml

<activity 
     android:name=".Demo" 
     android:label="@string/app_name" 
     android:screenOrientation="portrait" > 
     <!--android:priority added--> 
     <!--category.HOME and DEVICE_INITIALIZATION_WIZARD must have--> 
     <intent-filter android:priority="1000"> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.HOME"/> 
      <action android:name="android.intent.action.DEVICE_INITIALIZATION_WIZARD"/> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
+0

systemProperities没有解决,这里提到的otautils是什么东西,它也没有解决。所以你可以给一些解释和发布工作副本... – raj 2012-03-12 10:02:21

+0

你不要复制'OtaStartupReceiver'代码,你只需使用上面的XML配置定义一个活动。 ps:我给'OtaStartupReceiver'这个类,想让你明白系统选择它。 – idiottiger 2012-03-12 10:05:35

+0

感谢您的回复,但这不起作用。我已经在清单中包含了同样的东西。我会给你清楚的解释,我在我的应用程序中做了什么,我已经宣布一个广播Receiver作为Boot_completed.from Receiver,我开始从那里开始一项服务,iam在这个过程中调用我的活动,这需要时间。你可以帮助我.. – raj 2012-03-12 12:46:12

1

创建活动做这个的时候,我建议谨慎!

开始之前我认为这是一个好主意,请启用USB调试,如果发生任何事情,您可以使用ADB修复它。

我在一个项目中工作,客户希望应用程序出现时不显示android默认主页。

对于这一点,我劝你谨慎做到这一点。 系统我用:扎根的Android 4.0.3

在清单中添加这个您的活动中:

<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" /> 
     <category android:name="android.intent.category.HOME"/> <!-- this will make your app work like a launcher --> 
     <category android:name="android.intent.category.DEFAULT" />     
    </intent-filter> 
</activity> 

对于这个工作,你可能要采取的Settings/Applications/All 查找“启动”一看,点击它,然后点击按钮Clear Defaults

之后,点击“HOME”按钮,Android会询问你要启动哪个应用程序,如果你选择了你的应用程序,并选中“默认设置”框,它将始终作为你的主屏幕工作,因此,让你的应用成为启动器。所以当你重新启动你的设备时,它会一直显示你的应用程序。

当心!如果您这样做,您可能无法访问主屏幕,并且不会再提供重新访问设置的选项。所以你需要通过亚行来访问它,或者像我一样创建和“转义”。

里面我的应用程序,在管理方面我添加一个按钮,叫下面:

public void custom_launcher(View v){ 
    startActivity(new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_LAUNCHER)); 
} 

这将调用在Android的菜单,在这里你可以再次进入设置菜单。在设置菜单中,如果您想再次使用Android默认启动器,则可以执行与启动器相同的操作。

为此,请转至Settings/Applications/<app-name>,然后单击“清除默认值”。当你再次按回家时,Android会询问你想使用哪个启动器,Android启动器或你的应用程序。

相关问题