Android – 如何启动后启动/ SD卡上的应用程序

有没有办法如何启动和Android应用程序后自动启动,如果它在/sdcard

好吧,可能由BroadcastReceiver 。 但是哪一个行动是正确的?

 ACTION_BOOT_COMPLETED - does not work if it is on the /sdcard (documented) ACTION_MEDIA_MOUNTED - does not work if it is on the /sdcard (which is undocumented) ACTION_EXTERNAL_APPLICATIONS_AVAILABLE - does not work, I do not know why ACTION_USER_PRESENT - does not work if the BroadcastReceiver is registered in AndroidManifest (which is undocumented, but documentation bug has been reported) 

谢谢
一月

Solutions Collecting From Web of "Android – 如何启动后启动/ SD卡上的应用程序"

请在清单文件中提到它。

 </uses-permission> <receiver android:name=".BootReceiver" android:enabled="true" android:exported="true" android:label="BootReceiver"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED"></action> </intent-filter> </receiver> 

提供权限“android.permission.RECEIVE_BOOT_COMPLETED”作为清单的孩子。

还有一件事你的应用程序不能安装在SD卡中。

根据谷歌,你不应该把任何你想在外部驱动器启动运行的应用程序。

“系统在将外部存储设备安装到设备之前,会提供ACTION_BOOT_COMPLETED广播,如果您的应用程序安装在外部存储设备上,则永远不会收到此广播。

http://developer.android.com/guide/topics/data/install-location.html#ShouldNot

我通常注册广播接收机的每个意图filter(Android Manifest以及在扩展应用程序的类中dynamic地)

在AndroidManifest.xml中:

  <receiver android:name=".broadcastReciever" android:enabled="true" android:exported="true" android:permission="android.permission.RECEIVE_BOOT_COMPLETED"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> <action android:name="android.intent.action.EXTERNAL_APPLICATIONS_AVAILABLE" /> </intent-filter> </receiver> 

并在扩展Application的类中:

 registerReceiver(new broadcastReciever(), new IntentFilter(Intent.ACTION_EXTERNAL_APPLICATIONS_AVAILABLE)); 

并且不要忘记添加RECEIVE_BOOT_COMPLETED权限并在Android Manifest中注册扩展Application的类。

这应该做的; 随时请求任何更多的帮助/澄清。

尝试使用<receiver android:name=".BootCompleteReceiver" > <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> <action android:name="android.intent.action.QUICKBOOT_POWERON" /> </intent-filter> </receiver>

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

也许QUICKBOOT_POWERON帮助你