相关疑难解决方法(0)

跨多种活动的Android全面防故障音乐服务

我知道这个问题已经被问了很多次,可能似乎是几个问题堆集,但我觉得这是相关的,重要的是许多开发人员; 我需要Service为我的Android游戏创建一个可以运行多个活动的背景音乐,这些活动在应用程序终止时结束,并在以下所有情况下暂停:

  1. 一个Activity有自己音乐的东西就开始了.(Activity完成时完成.这恰好是一项AndEngine活动.)
  2. 按下主屏幕,应用程序背景,或终止应用程序.应用程序返回前台时恢复.需要使用onUserLeaveHint().另一个有用的链接
  3. 手机接到电话并中断应用程序.处理呼叫时恢复.需要使用TelephonyManager类似于.
  4. 屏幕已锁定.(简历屏已经被解锁后)需要使用的ACTION_USER_PRESENT,这似乎 非常 有问题的.
  5. 基本上,只要没有显示应用程序或者向用户显示来自#1的特殊活动,音乐就会暂停.

以上是我需要的所有内容以及我拼凑在一起的信息.我目前的代码基本上类似于.

我发现很奇怪,AndEngine他们的音乐没有这些问题,所以也许查看源代码可以帮助寻找答案的人.我正在使用Google Code的最新功能GLES1版本.

我已经看过以下链接以及创建好音乐Service:

我想解决方案Service:

  • BroadcastReceivers尽可能减少使用和Android Manifest添加/权限的最小化
  • 自包含和错误检查

其他说明

  • 目前,所有需要背景音乐的活动都扩展了一个共同的特殊课程.
  • 音乐需要循环,但只运行一个轨道.

提前感谢大家!祝你好运!

编辑 - 这是代码片段,随意改进或忽略:

媒体播放器包装

import android.content.SharedPreferences;
import android.media.MediaPlayer;
import android.preference.PreferenceManager;
import android.util.Log;

public class CarefulMediaPlayer {
    final SharedPreferences sp;
    final MediaPlayer mp;
    private …
Run Code Online (Sandbox Code Playgroud)

service android background playback andengine

25
推荐指数
1
解决办法
2644
查看次数

ACTION_USER_PRESENT,ACTION_SCREEN_ON,ACTION_BOOT_COMPLETED的广播接收器

我正在创建一个使用广播接收器的类.我希望在解锁手机时收到广播.但是有一些问题.请帮帮我.

我的Manifest.xml是: -

<receiver android:name=".MyReciever">
    <intent-filter>
        <intent-filter>
            <action android:name="android.intent.action.ACTION_USER_PRESENT" />
            <action android:name="android.intent.action.ACTION_BOOT_COMPLETED" />
            <action android:name="android.intent.action.ACTION_SCREEN_ON" />
        </intent-filter>
    </intent-filter>
</receiver>
Run Code Online (Sandbox Code Playgroud)

和我的广播接收班: -

public class MyReiever extends BroadcastReceiver {

   @Override
   public void onReceive(Context context, Intent intent) {
   Log.d("My Reciever","is intent null => " + (intent == null));
   Log.d("My Reciever",intent.getAction()+"");
   }
}
Run Code Online (Sandbox Code Playgroud)

虽然其他应用程序和服务正在接收"Screen_on"和"USer_Present"的广播,例如.WifiService.

android broadcastreceiver android-manifest

6
推荐指数
1
解决办法
7053
查看次数

Android广播接收器无法正常工作

我正在尝试让我的应用程序在打开屏幕时打印一些内容,但它不能像我预期的那样工作.

这是我在Manifest文件中的内容

<application android:icon="@drawable/icon" android:label="@string/app_name">
    <activity ...>
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>


    <receiver android:name="PhoneBroadcastReceiver" android:enabled="true">
        <intent-filter>
            <action android:name="android.intent.action.SCREEN_ON"></action>
        </intent-filter>
    </receiver>
</application>
Run Code Online (Sandbox Code Playgroud)

我的接收器看起来像

public class PhoneBroadcastReceiver extends BroadcastReceiver {

public PhoneBroadcastReceiver()
{
}

@Override
public void onReceive(Context _context, Intent _intent) {
    // TODO Auto-generated method stub
    String a = _intent.getAction();


    MessageHandler.log("Received action: " + a); // just a wrapper for printing to a log

}
Run Code Online (Sandbox Code Playgroud)

}

但它没有打印到日志.我一直按下我的Android电源按钮,屏幕打开/关闭,但我的消息没有出现在日志中.我错过了什么?它看起来与我在网上找到的例子相同.

java android broadcastreceiver

0
推荐指数
1
解决办法
2771
查看次数