我在Iphone-4s中为我的应用程序使用核心蓝牙框架.
这通常必须是一个可以尽可能长时间运行的后台应用程序.
现在它只运行40分钟 - 最多1小时.
我希望至少1天左右.
对于这个"bluetooth-central"值,在.plist文件的"Required background modes"键中添加.
好像我的应用程序将在最后"暂停"模式.因为当我再次打开应用程序(背景到前景状态)时它再次发送通知,这意味着蓝牙连接仍然连接,并且BLE设备仍在发送通知.如果我按主页按钮并且应用程序进入后台,则不会再次收到通知.
任何人都可以告诉我为什么我的应用程序只能在后台模式下工作最多1小时.它应该继续像普通的音乐应用程序一样在后台运行,就像永远.
苹果公司是否有任何具体说明背景应用程序(这是连续运行的背景应用程序中有哪一个属于5个类别)失败的情况,它将进入暂停模式?
参考" iPhoneAppProgrammingGuide",在" Communicating with a Bluetooth Accessory"部分,我开始知道,对于蓝牙LE应用程序的长期运行后台任务2实现是必要的:
1)UIBackgroundModes键应该是Info.plist文件中的"bluetooth-central" .2)任何支持蓝牙数据后台处理的应用都必须基于会话.
因此,对于我的应用程序,FIRST实现已合并,并且该应用程序能够在后台运行并执行所有任务,持续时间最长为1小时.
现在我需要实现第二个实现.即基于会话.根据文档,即使应用程序处于"暂停"状态,也可以获取事件.我试图创建一个特定于蓝牙LE(核心蓝牙框架)的合适会话,如" EASession经典蓝牙(外部附件框架)"中的" ".但我没有找到它.
基本上我不确定哪个会话类需要用于BLE目的.对于音频/视频,网络和互联网,外部配件,可提供单独的会话类.核心蓝牙框架没有.
任何人都可以帮助我,哪个会话类适合BLE.
background-application ios core-bluetooth bluetooth-lowenergy
我已经花了两天时间在这上面并且无处可去.我正在尝试使用[MPMusicPlayerController applicationMusicPlayer]播放从用户的iPod库中选择的音频,让它在后台运行并支持远程事件.现在让音乐真正播放是很容易的部分.获取实例,选择歌曲,分配音乐队列并播放.做完了.但是...... a)我不能让它在后台播放,而b)即使在前台我也无法让遥控器事件发挥作用!
在你问之前,是的,我已经设置了plist条目,音频会话类别,打电话说我有兴趣获得远程事件并设置第一响应者来听取它们,所以请知道,是的,我我读过我能找到的关于这个主题的每一个文件*(*一个任务我责怪Apple因为在这个主题上根本不清楚,也没有任何示例代码!)我看过每一个与之相关的WWDC视频(甚至冻结屏幕以完全从他们的示例复制代码......)所以,除非我错过了不在此列表中的内容,否则回复任何这些答案都无济于事.
还有一件事......我明确地谈到使用根据文档的MPMusicPlayerController,从不使用应用程序会话.它始终使用系统会话.(也许这本身就回答了我的问题,但是文档没有明确说明,所以我不确定,因此这个问题.)
也就是说,两天后,我的想法是这样的:
使用MPMusicPlayerController时,无论您调用哪种方法或设置了哪些plist条目,您的应用程序都不会在后台运行.期.如果您使用ipodMusicPlayer实例,音乐会继续播放,但这是因为它是正在播放的iPod,而不是您的应用.如果您使用的是applicationMusicPlayer实例,那么在转到后台时您的音乐会停止.在这两种情况下,您的应用都会被暂停
无论您使用ipodMusicPlayer还是applicationMusicPlayer实例,所有远程事件都会转到iPod应用程序本身,而不是您的应用程序,即使您明确要求它们也是如此.如果您正在使用applicationMusicPlayer实例并使用遥控器选择"播放",则iPod应用程序会收到命令,以便您的音频消失并中断并在iPod应用程序中开始播放.如果您选择了ipodMusicPlayer,那么当然它并不重要,因为您已明确表示您基本上只对远程控制iPod应用程序感兴趣,这也是实际接收远程事件的内容.
底部快速切换控件中的图标永远不会更改为应用程序的图标,因为再次,您的应用程序实际上从未设置为接收事件.iPod应用程序,这就是它的图标出现在那里的原因.
所以我想知道的是......我错了吗?有没有人成功地使用MPMusicPlayerController并能够拦截远程事件?虽然我更喜欢使用带有背景音乐支持的applicationMusicPlayer,所以我不会使用用户的iPod,更重要的是远程控制通知,这意味着如果我必须使用ipodMusicControl并将我的应用程序放在前台来拦截那些消息,就这样吧.这样丑陋,但至少它是一些东西.
代码示例,或至少针对其中一个内置应用模板的明确步骤将非常感激.(甚至不需要实施......只是步骤.希望这将安抚不可避免的'它仍然在NDA'的事情,人们一直在回答问题.)
标记
ipod remote-control background-application mpmusicplayercontroller ios4
我想创建后台应用程序,它将监听启动的应用程序和移动到前台的内容.
请回复如果问题不明确将再次解释.
谢谢
我正在创建一个情绪跟踪应用程序,除其他外,它应该使用有关用户收听的歌曲的信息。具体来说,我感兴趣的是在播放曲目时提取从锁定屏幕视图中可见的标题。我搜索过互联网,但没有找到使用 Swift 访问这些数据的解决方案。
有人可以帮忙吗?
我想编写一个跟踪应用程序,当用户上车时,它会做出反应/记录,而手机会自动与蓝牙配对.我还需要免提设备的ID.
在Android上很容易,使用广播接收器你的应用程序听设备已与手机配对的广播.它甚至在手机重新启动后工作,并且重启后App没有运行.
在iOS(7+)上可以吗?
在我的黑莓模拟器我在后台运行两个应用程序现在我想要检索哪些是在后台运行的应用程序.我不怎么做.是否可以显示在后台运行的应用程序.
我的应用程序使用iBeacon和GeoFence服务在iOS 7.1的后台运行良好,但它在iOS 8上没有.所以当我去"后台应用程序刷新"设置来检查我的应用程序时,我意识到它没有显示在名单.我认为这是不能启用后台服务的.我是否必须更新我的应用程序才能兼容iOS 8?或者它只是一个iOS8的bug?有人,请告诉我.
大家好,我正在开发一个使用 Firebase 云消息传递的应用程序。但是我有这样的情况,我不想让用户看到何时收到带有数据消息的通知。我已经通过从 myFirebaseMessagingService 中删除函数 sendNotification 解决了这个问题,但这仅在我的应用程序处于前台时才有效。我的问题是:当应用程序在后台并且通知来到系统托盘时,如何设置代码以便不显示通知图标?
这是我的主要活动:
public class MainActivity extends AppCompatActivity {
Button dugme, dugme2, dugmeBaza, dugmeToken;
DataBaseHelper db;
Cursor c;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d("onCreate", "ONCREATE");
db=new DataBaseHelper(this);
final Intent intent=getIntent();
setContentView(R.layout.activity_main);
String msg = getIntent().getStringExtra("click_action");
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
if (msg != null)
{
Log.d("MSG", msg);
if (msg.equals("goToFragment1")) {
Fragment1 fragment1 = new Fragment1();
fragmentTransaction.replace(R.id.myFragment, fragment1);
Log.d("FragmentTransaction", "Fragment je promenjen u onCreate!");
fragmentTransaction.commit();
Log.d("Create", "Kraj onCreatea");
}
}
dugme …Run Code Online (Sandbox Code Playgroud) 我们正在寻找一种方法来执行以下操作:
可以这样做吗?可以透明地对用户完成(即没有对话或用户参与)?我应该看哪些API?
谢谢
integration blackberry call intercept background-application
我正在开发一个Android应用程序,该应用程序可以拦截紧迫的硬件按钮并进行REST调用以减轻压力。我必须拦截的按钮是一键通(PTT)按钮,而不是常规按钮,例如电源按钮或音量按钮。
当应用程序在前台运行时,我使用方法onKeyDown(int keyCode,KeyEvent事件)。PTT按钮作为标识符具有数字27,然后在该方法内部编写了以下代码行:
if(keyCode == 27){//我按下了PTT按钮}
所有这些完美地工作。
但是现在我在后台发送该应用程序(带有moveTaskToBack(true);函数),当我按下PTT按钮时,我将拦截它。
我知道BroadcastReceiver,IntentFilter和Service,但是,它们允许您拦截有限的intent动作(例如intent.action.SCREEN_OFF或其他常规动作),其中无法找到PTT按钮的压力。
当应用程序处于后台时,有什么方法可以拦截PTT按钮?
谢谢
当应用程序位于前台和后台时,我可以跟踪地理位置(所有关于位置精度和节省电池寿命的讨论)。
但是,我还需要在应用程序未运行时(未打开且不在后台,被杀死)跟踪用户,当然需要用户许可。
有可能做到吗?
我需要类似“查找朋友”的应用程序。允许吗?
谢谢
实际上我想创建一个getGlobalEvent应用程序,并通过另一个自定义应用程序控制该事件.有没有办法这样做.我可以从特定应用程序获取全局事件吗?它就像一个将自定义应用程序锁定在黑莓中的应用程序,如果你在锁定应用程序列表中添加以下应用程序并输入密码,那么当你尝试打开该应用程序时,它会要求你在锁定应用程序中设置的密码.