【问题标题】:Broadcast receiver android >= 2.2 CAMERA_BUTTON广播接收器 android >= 2.2 CAMERA_BUTTON
【发布时间】:2011-06-11 17:24:01
【问题描述】:

我的广播接收器有问题。它不工作。我找不到任何令人满意的答案来解决我的问题。这是我的代码片段:

    <receiver 
        android:name=".CameraReceiver" 
        android:enabled="true">
        <intent-filter>
            <action android:name="android.intent.action.CAMERA_BUTTON" />
        </intent-filter>
    </receiver>

@Override
public void onReceive(Context context, Intent intent) {     
    Toast.makeText(context, "It's working!", Toast.LENGTH_LONG).show();
}

根据我在互联网上找到的一些建议,我尝试添加如下内容:

    <intent-filter android:priority="100000">

以此类推,但没有任何效果。

当我将 android.intent.action.CAMERA_BUTTON 更改为其他任何内容并执行此操作(例如 android.net.wifi.WIFI_STATE_CHANGED)时,总是会出现“它正在工作”的 Toast。但不是当我使用 android.intent.action.CAMERA_BUTTON 并拍照时。不知道怎么回事。

有什么建议吗?我使用 Android 模拟器 2.2 和 2.3.3。

【问题讨论】:

    标签: android broadcastreceiver android-camera


    【解决方案1】:

    我是该教程和补丁的作者,用于在模拟器上启用相机按钮。模拟器的最新版本 do 支持相机按钮,因为它们将我的补丁合并到代码库中。但是,出于我无法理解的原因,他们没有合并更新皮肤的补丁,所以第一个补丁没用。您需要确保您的皮肤支持相机按钮,如我的教程中所述。

    另外,我解决了这个问题,因为我想测试您也在尝试测试的内容。我的 AndroidManifest.xml 有一个像你一样的接收器部分,但我在 &lt;activity&gt; 内也有一个意图过滤器部分,用于接收意图:

    <intent-filter>
        <action android:name="android.media.action.STILL_IMAGE_CAMERA" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
    

    【讨论】:

      【解决方案2】:

      &lt;category android:name="android.intent.category.DEFAULT" /&gt; 添加到您的意图过滤器中,如here 所述。

      【讨论】:

      • 仍然无法正常工作...在模拟器和手机上。我早些时候尝试过,结果相同。也许我应该添加更多内容?不仅对我的广播接收器?
      • 我试过这个而不是 CAMERA_BUTTON,它可以在模拟器上运行,但不能在手机上运行......我有 HTC DESIRE Android 2.2。
      【解决方案3】:

      我认为相机按钮在模拟器中不起作用。 你有什么硬件设备可以试用你的应用吗?

      以下是相关的错误报告: http://code.google.com/p/android/issues/detail?id=8197

      如果您想弄乱模拟器源代码,可以尝试此处的说明: http://soledadpenades.com/2011/02/20/enabling-the-camera-button-in-androids-emulator/

      【讨论】:

      • 正如我之前写的,我一直在我的 HTC 渴望 2.2 上测试它,结果相同。没有吐司。所以我想我需要在我的代码中做更多的事情。允许?清单中还有几行?
      • 好吧,我发现了一些有趣的东西:stackoverflow.com/questions/4389427/… 所以我放弃了使用BroadcastReceiver,我打算用ContentObserver 来做。感谢您的帮助:)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多