自启动隐藏运行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Delphi中创建一个能够自启动的Android应用程序是很简单的。有两种方法可以实现这个功能:使用广播接收器或使用定时器。下面是两种方法的详细步骤。 使用广播接收器: 1. 创建一个类,继承自广播接收器。 2. 重写onReceive()方法,使其在接收到BOOT_COMPLETED广播后启动你的应用程序。 3. 在AndroidManifest.xml文件中注册接收器,设置过滤器为“android.intent.action.BOOT_COMPLETED”。 使用定时器: 1. 创建一个隐藏的定时器组件,让它的自动启动属性设置为true。 2. 在OnTimer事件中启动你的应用程序。 3. 在Mainifest中设置权限“android.permission.RECEIVE_BOOT_COMPLETED”,确保你的应用程序可以接收到BOOT_COMPLETED广播。 无论你选择哪种方法,当你的应用程序启动时,必须实现一些代码来处理设备的状态和自动启动行为。例如,你可以检查设备是否充电或连接到网络,然后根据这些状态控制你的应用程序行为。 总之,使用Delphi创建一个能够自启动的Android应用程序非常简单。只需使用广播接收器或定时器,并实现额外的代码来处理状态和行为即可。 ### 回答2: 在Delphi中,实现Android应用程序自动启动可以通过以下步骤完成: 1. 首先,在项目中导入FMX.Platform和Androidapi.Helpers单元。 2. 在程序的主界面中,添加一个TButton组件,用于触发应用程序自启动的事件。 3. 在按钮的OnClick事件中,使用以下代码块: ```Delphi procedure TForm1.Button1Click(Sender: TObject); var Intent: JIntent; begin Intent := TJIntent.Create; Intent.setClassName(TAndroidHelper.Context, TAndroidHelper.Context.getPackageName + '/.' + TAndroidHelper.Activity.getClass.getName); Intent.setAction(TJIntent.JavaClass.ACTION_BOOT_COMPLETED); TAndroidHelper.Context.startService(Intent); end; ``` 以上代码创建了一个Intent对象,并设置Intent的类名为当前应用的包名以及主活动的类名。然后,设置Intent的动作为ACTION_BOOT_COMPLETED。 4. 在应用程序的AndroidManifest.xml文件中,添加以下权限: ```xml <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/> ``` 这将允许应用程序在设备启动完成后接收到相应的广播。 5. 接下来,在AndroidManifest.xml文件中,添加以下代码块: ```xml <receiver android:name=".BootCompletedReceiver"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> </intent-filter> </receiver> ``` 这将注册一个广播接收器,用于在设备启动完成后接收到广播。 6. 最后,在项目中添加一个名为BootCompletedReceiver的单元。在该单元中,添加以下代码块: ```Delphi unit BootCompleted; interface uses System.SysUtils, System.Classes, Androidapi.JNIBridge, Androidapi.JNI.JavaTypes, Androidapi.JNI.GraphicsContentViewText; type [BroadcastReceiverAttribute] [JavaSignatureAttribute('BootCompletedReceiver')] BootCompletedReceiver = class(TAndroidBroadcastReceiver) public procedure onReceive(Context: JContext; Intent: JIntent); override; end; implementation procedure BootCompletedReceiver.onReceive(Context: JContext; Intent: JIntent); begin // 在设备启动完成后执行的代码 end; end. ``` 在onReceive事件处理程序中,可以执行当设备启动完成后需要执行的代码。 通过以上步骤,使用Delphi for Android的应用程序可以实现自启动。当设备启动完成后,应用程序将自动启动并执行特定的代码。 ### 回答3: 在Delphi中,要实现Android应用程序自启动,可以按照以下步骤进行: 1. 在Delphi中创建一个新项目,选择“Android Application”模板。 2. 双击“Project”视图中的“AndroidManifest.template.xml”文件,打开Android清单文件。 3. 在清单文件中,找到<Application>标签,并添加以下属性:android:label,android:icon,android:theme。 例如:android:label="MyApp",android:icon="@drawable/app_icon",android:theme="@android:style/Theme.NoTitleBar"。 4. 在清单文件中,找到<uses-permission>标签,并添加以下权限:<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />。 该权限允许应用在设备启动时接收启动完成的广播。 5. 在清单文件中,找到<application>标签,并在内部添加以下内容: <receiver android:name=".BootReceiver" android:enabled="true" android:exported="true"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> </intent-filter> </receiver> 这将创建一个广播接收器,用于接收设备启动完成的广播。 6. 在Delphi中,创建一个新的单元,命名为“BootReceiver.pas”(文件名可以根据需要更改),并添加以下代码: unit BootReceiver; interface uses System.Classes, System.Android.Service, Androidapi.JNI.GraphicsContentViewText, Androidapi.JNI.JavaTypes, Androidapi.JNI.Os, Androidapi.JNI.App; type [BroadcastReceiver(Enabled := true, Exported := true)] [IntentFilterAttribute(TJIntent.JavaClass.ACTION_BOOT_COMPLETED)] TBootReceiver = class(TBroadcastReceiver) protected procedure onReceive(context: JContext; intent: JIntent); override; end; implementation procedure TBootReceiver.onReceive(context: JContext; intent: JIntent); begin // 在这里编写在应用启动时要执行的代码 end; end. 7. 在Delphi中,打开“Project”视图,找到“deployment”,将“BootReceiver.pas”添加到“Includes”下的“Unit Scope Names”中。 8. 编译并运行Android应用程序。 通过以上步骤,我们在Delphi中创建了一个Android广播接收器,用于接收设备启动完成的广播。然后,我们可以在接收器中编写需要在应用启动时执行的代码。这样,当设备启动时,我们的Delphi Android应用程序也将自动启动。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值