我想要的:我想成为第一个接收短信广播的人,如果我只对短信感兴趣,我想取消广播,这样广播就不会到达任何其他应用程序/接收器(默认消息应用程序ETC。)。 我所知道的是:
我不知道的是:
我为第一个收到广播所做的尝试:
我已经尝试取消广播:
最佳答案
当然可以。 像这样在您的 list 中注册您的接收器:
<receiver android:name=".SmsReceiver">
<intent-filter android:priority="1000">
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
在你的接收者的 onReceive 方法中写:
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(SMS_RECEIVED)) {
//do your stuff
abortBroadcast();
}
}
请记住像这样在 list 中设置接收短信的权限:
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
如果没有设置正确的权限,它将无声地失败并显示以下 logcat 消息:
07-13 12:54:13.208: WARN/ActivityManager(201): Permission Denial: receiving Intent { act=android.provider.Telephony.SMS_RECEIVED (has extras) } to com.mypackage requires android.permission.RECEIVE_SMS due to sender com.android.phone (uid 1001)
最后,另一个应用程序可能已经注册了一个比您的优先级更高的接收器,因此它会在您取消之前接收到广播。因此,如果一切都失败了,请尝试使用更高的优先级值进行试验。
关于android - 中止/取消广播,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5191020/
最近因为项目需要,需要将Android手机系统自带的某个系统软件反编译并更改里面某个资源,并重新打包,签名生成新的自定义的apk,下面我来介绍一下我的实现过程。APK修改,分为以下几步:反编译解包,修改,重打包,修改签名等步骤。安卓apk修改准备工作1.系统配置好JavaJDK环境变量2.需要root权限的手机(针对系统自带apk,其他软件免root)3.Auto-Sign签名工具4.apktool工具安卓apk修改开始反编译本文拿Android系统里面的Settings.apk做demo,具体如何将apk获取出来在此就不过多介绍了,直接进入主题:按键win+R输入cmd,打开命令窗口,并将路
我正在编写一个将服务器端事件与ActionController::Live结合使用的应用程序。它正在使用puma应用程序服务器。当用户连接等待来自Redis的消息时,消息Controller中的方法保持事件状态。问题是我不想通过这种方法连接到Postgres。我在六个选项卡中打开应用程序后,它有超过五个连接,由config/database.yml文件中的池大小定义,应用程序崩溃。无论如何,在调用该方法时是否可以告诉我的应用它不需要连接到数据库,因为其中没有ActiveRecord查询调用? 最佳答案 一种可能的方法是使用中间件。设
我一直在尝试从源代码添加一个vagrant插件(https://github.com/schisamo/vagrant-omnibus)。我下载了它,进行了“捆绑安装”,一切顺利。但是当我执行“rakeinstall”时,它显示了以下错误:rakeaborted!cannotloadsuchfile--yard这是带有跟踪的完整错误日志:rakeaborted!cannotloadsuchfile--yard/root/chef-solo-example/vagrant-omnibus-master/Rakefile:5:in`require'/root/chef-solo-examp
我在Rails3中使用Bundler和Cucumber时遇到问题。当我运行$rakecucumber时,我得到以下输出:bundleexec/usr/local/bin/ruby-I"/usr/local/lib/ruby/gems/1.9.1/gems/cucumber-0.8.5/lib:lib""/usr/local/lib/ruby/gems/1.9.1/gems/cucumber-0.8.5/bin/cucumber"--profiledefault(in/home//practice/rails/blog)Usingthedefaultprofile...UUUU1scen
将stripe的API与RubyonRails结合使用我无法保存订阅。我能够检索、更新和保存客户对象:customer=Stripe::Customer.retrieve(some_customer_id)#thisworkscustomer.save#thisworks我还可以检索订阅:subscription=customer.subscriptions.retrieve("some_subscription_id")#这个有效但是,在尝试保存订阅时:subscription.save#这不起作用我不断得到这个:NoMethodError:undefinedmethod`save'
我正在尝试在我的Windows上安装Octopress。根据他们关于website的教程.但是当我输入命令时rakeinstall它给了我以下错误C:\DocumentsandSettings\admin\octopress>rakeinstallrakeaborted!Youhavealreadyactivatedrake0.9.2.2,butyourGemfilerequiresrake0.9.2.Usingbundleexecmaysolvethis.(Seefulltracebyrunningtaskwith--trace)正如错误所说,我需要安装rake0.9.2我尝试使用以
在ruby中,我如何解码c风格的转义序列?例如'\n'到换行符,'\t'到制表符? 最佳答案 好吧,如果你不喜欢eval解决方案,我已经在Ruby中破解了一个简单的状态机来正确解析字符串中的简单“\n”和“\t”,包括预转义反斜杠本身。在这里:BACKSLASH="\\"defunescape_c_string(s)state=0res=''s.each_char{|c|casestatewhen0casecwhenBACKSLASHthenstate=1elseres这个可以轻松扩展以支持更多字符,包括多字符实体,如\123。
在ruby中,有没有办法在变量或常量定义后“取消定义”?在我们的rails环境中,我们将三个常量之一定义为true,具体取决于环境:TESTING、DEVELOPMENT或生产。然后,在Controller代码中,我们使用defined?来查看我们是否处于什么环境中,即:defined?制作。现在,我想对某些特定于环境的行为进行单元测试。我最初的尝试是在我的测试中设置适当的常量,然后在拆卸时重置它们。但是,我不知道如何重置DEVELOPMENT和PRODUCTION以便defined?返回false。显然,解决方案是除了检查适当的常量是否已定义之外,还检查它是否也为真,但这将导致不
运行有问题或需要源码请点赞关注收藏后评论区留言一、利用ContentResolver读写联系人在实际开发中,普通App很少会开放数据接口给其他应用访问。内容组件能够派上用场的情况往往是App想要访问系统应用的通讯数据,比如查看联系人,短信,通话记录等等,以及对这些通讯数据及逆行增删改查。首先要给AndroidMaifest.xml中添加响应的权限配置 下面是往手机通讯录添加联系人信息的例子效果如下分成三个步骤先查出联系人的基本信息,然后查询联系人号码,再查询联系人邮箱代码 ContactAddActivity类packagecom.example.chapter07;importandroid
1.前言 在10.0的系统rom定制化开发中,在系统中有多个launcher的时候,会在开机进入launcher的时候弹窗launcher列表,让用户选择进入哪个launcher,这样显得特别的不方便所以产品开发中,要求用RoleManager的相关api来设置默认Launcher,但是在设置完默认Launcher以后,在安装一款Launcher的时候,默认Launcher就会失效,在系统设置的默认应用中Launcher选项就为空,点击home键的时候会弹出默认Launcher列表,让选择进入哪个默认Launcher.所以需要从安装Launcher的流程来分析相关的设置。来解决问题设置默认La