有没有办法在使用一些“帮助应用程序”安装后立即启动应用程序? [复制]

Posted

技术标签:

【中文标题】有没有办法在使用一些“帮助应用程序”安装后立即启动应用程序? [复制]【英文标题】:Is there a way to start the application right after installation using some "helper application"? [duplicate] 【发布时间】:2013-07-24 22:40:35 【问题描述】:

我正在开发一个防盗应用程序,它基于使用广播接收器为传入的SMS 启动服务。

但是如果手机已经丢失,从Google Play远程安装应用程序时广播接收器将无法工作,因为应用程序必须至少启动一次才能接收3.0+版本的广播。

那么,有没有办法在安装后使用一些“帮助应用程序”立即启动应用程序,或者让广播接收器为远程安装工作?

【问题讨论】:

***.com/questions/11872320/… 在 google play android Lost 上有一个应用程序,它通过传入的短信调用 google 推送消息的注册服务,而对于 3.0+ 版本甚至无需启动应用程序 【参考方案1】:

您的应用程序需要在清单中拥有 android.permission.RECEIVE_SMS 的使用权限。

一旦你有了它,你就可以为android.provider.Telephony.SMS_RECEIVED注册一个广播接收器。

然后你会想要创建你的receiver。

<receiver android:name=".SMSBroadcastReceiver"> 
    <intent-filter> 
        <action android:name="android.provider.Telephony.SMS_RECEIVED" /> 
    </intent-filter> 
</receiver>

您的接收者应该扩展 BroadcastReceiver 并在 onReceive() 方法中,当您收到 android.provider.Telephony.SMS_RECEIVED_ACTION 的意图时,您想要检索消息并确定它是否是您想要关注的消息。

您的代码可能看起来像这样。

public class SMSBroadcastReceiver extends BroadcastReceiver 
    private static final String TAG = "SMSBroadcastReceiver";
    private static final String SMS_RECEIVED_ACTION = "android.provider.Telephony.SMS_RECEIVED"

    @Override
    public void onReceive(Context context, Intent intent) 
        if (intent.getAction().equals(SMS_RECEIVED)) 
            Bundle bundle = intent.getExtras();
            if (bundle != null) 
                Object[] pdus = (Object[]) bundle.get("pdus");
                final SmsMessage[] messages = new SmsMessage[pdus.length];
                for (int i = 0; i < pdus.length; i++) 
                    messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
                
                if (messages.length > -1) 
                    //You have messages, do something with them here to determine if you want to look at them and other actions.
                
            
        
    

【讨论】:

哥们,你不明白这个问题。请再次阅读问题。 您正试图在本机应用程序上加载您的解决方案,但考虑到用户可能无法访问他们的应用程序来注册电话的情况。相反,我会进行远程安装,注册接收器(自动完成),然后让用户在网站或其他平台上输入他们的号码。完成后,等待几分钟将短信发送到他们提供的号码launch service,然后继续您的快乐之旅。 抱歉没找到你。您是否知道如果应用程序未启动至少一次(对于 3.0 版以上),广播接收器将无法工作。 我不知道这一点,很高兴知道。看一下here,您似乎可以使用FLAG_INCLUDE_STOPPED_PACKAGES 来克服这个限制。根据我对阅读更改的理解,不同之处在于应用程序被认为处于停止状态,这会导致广播接收器无法被调用,因此设置标志将使其可用并缓解您的问题。

以上是关于有没有办法在使用一些“帮助应用程序”安装后立即启动应用程序? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

使用 electron-builder NSIS 安装程序安装后运行时如何传递命令行参数

有没有办法连续运行服务?

Windows10安装Mysql后没有服务并且不能启动解决办法

为啥我的 SharedPreferences 在应用程序启动后没有立即加载?

有没有办法让内联事件处理程序在元素创建后立即执行?

uicollectionview 在重新加载数据后立即选择一个项目?