小编Ngu*_*Dat的帖子

适用于Android的远程测试实验室(RTL)

刚刚知道三星支持RTL的三星Android设备:

http://developer.samsung.com/remotetestlab/rtlDeviceList.action

三星RTL

[题]

任何已知其他移动设备的其他免费RTL如HTC,LG,...等

更新2: [08/07/2011]谢谢denis.solonenko

1.LG Mobile: http ://developer.lgmobile.com/lge.mdn.sup.retrieveVirtualDevLab.dev

2.Motorola Mobile: http ://developer.motorola.com/testing/motoready/

3.Sony Mobile: https ://remotedevicelab.sonymobile.com/

android

45
推荐指数
2
解决办法
1万
查看次数

将BroadcastReceiver注册到Widget(Context对象的区别)

有点混淆Widget ContextApplication Context之间的区别:关于无法通过实现Android Widget的源代码注册新的BroadcastReceiver的问题(Ref.1)


出于可读性的原因,我将我的答案复制如下:★ 亨利的问题(参考文献1):

我正在制作一个需要广播接收器的小部件,就像com.example.android.apis.appwidget.ExampleBroadcastReceiver中的那个.但是,该示例在清单中定义了Intent.ACTION_TIMEZONE_CHANGED,但有一些不允许这样做

例如,Intent.ACTION_TIME_TICK说"你不能通过在清单中声明的​​组件来接收它,只能通过用Context.registerReceiver()明确地注册它."

所以我删除了清单声明并尝试使用如下调用替换示例中的AppWidgetProvider.onEnabled函数:context.registerReceiver(myReceiver,new IntentFilter(Intent.ACTION_TIME_TICK));

(其中"myReceiver"是我想要的接收器的实例.)但是,当我尝试运行代码时,我收到以下错误:

无法启动接收器... android.content.ReceiverCallNotAllowedException:不允许IntentReceiver组件注册接收意图

★我们分析了这个问题并解决了这个问题(参考文献1)

这是调查此问题后的结果,我是处理程序成功此问题.所以我收集报告与android开发者分享.希望它有所帮助

结果如下:

❶ISSUE:*关于Widget的限制,当尝试通过显式源代码注册BroadcastReceiver时:(通过Manifest.xml注册BroadcastReceiver时无效)

❷示例:*BroadcastReceiver:ACTION_TIME_TICK消息就是一个例子:来自Android的文档指出:"你不能通过清单中声明的​​组件来接收它,只能通过用Context.registerReceiver()明确地注册它." (参考文献1)

❸PREVIOUSSOLUTION:*Code Snippet:context.registerReceiver(this,intentName); (1)

❹ERROR使用3★解决方案*当实现跟随(1)时,它虽然异常:android.content.ReceiverCallNotAllowedException:IntentReceiver组件不允许注册接收意图

★任何需要在Widget中注册BroadcastReceiver的人都有好消息:)我们可以注册成功的BroadcastReceiver

❺您的解决方案:*但是,我们可以通过使用的应用程序上下文而不是Widget上下文(*)代码片段来修复它:context.getApplicationContext.registerReceiver(this,intentName);

❻参考:*http://developer.android.com/reference/android/content/Intent.html#AC ...关于

❼目标环境:*SDK 2.3,在模拟器和NexusOne 2.3上,如果有任何成功的解决方案请更新我们的报告

❽注意*可能是小部件和应用程序的Context对象之间的区别,但我仍然不知道这个问题的确切原因.

如果您有更好的解决方案或更清楚地解释,请告诉我

我也解决了这个问题,但我仍然不知道这个问题的确切原因.

如果您有更好的解决方案或更清楚地解释,请告诉我


★结论:

NG:使用Widget上下文注册BroadcastReceiver时

context.registerReceiver(this, intentName); 
Run Code Online (Sandbox Code Playgroud)

- >它以为异常:

Unable to start receiver...android.content.ReceiverCallNotAllowedException: IntentReceiver components are not allowed to register to receive intents
Run Code Online (Sandbox Code Playgroud)

OK:使用Application上下文时一切正常:

ontext.getApplicationContext.registerReceiver(this, intentName); 
Run Code Online (Sandbox Code Playgroud)

★问: 还有我们的解决方案可以求解的问题:"无法注册新的广播消息通过实现Android小工具的源代码".

但我仍然关注两个问题:

问题 ❶:Widget …

android android-widget

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

Manifest.xml设置中的RegisterBroadcastReceiver或实现源代码

我很少关注注册BroadcastReceiver:因为Android支持相当灵活,它允许BroadcastReceiver注册2方法:在Manifest.xml设置和Via实现源代码:

例:

通过Manifest.xml

<intent-filter>
    <action android:name="YourBroadcastMesssage" />
</intent-filter>
Run Code Online (Sandbox Code Playgroud)

注册源代码思想实现:

IntentFilter filter = IntentFilter("BroadcastMessage");
filter.addAction("BroadcastMessage");
context.registerReceiver(BroadcastListener, filter);

enter code here
Run Code Online (Sandbox Code Playgroud)

★我认为其中一个区别是取消注册:

  1. 实现❶意味着总是处理程序注册广播消息.
  2. 实现❷以防万一不想处理广播消息,可以取消注册该广播消息

问题:

我还不知道何时使用❶或❷哪个更好?

android

17
推荐指数
1
解决办法
3613
查看次数

解密(*(void(*)())0)()

他们说这个表达式在C中是有效的,这意味着调用一个函数:

(*(void(*)())0)();
Run Code Online (Sandbox Code Playgroud)

有人可以清楚地解释这个表达的含义吗?

我试图编译它,并感到惊讶,它没有导致错误.

c syntax function-pointers

6
推荐指数
2
解决办法
538
查看次数

无法在Linux中将UTF8插入数据库MySQL

当创建表时,我已经设置了charset = utf8.

我创建了1个存储过程来将数据插入数据库.

  1. 将数据UTF8插入到窗口上的数据库时,它可以正常工作.(正确显示数据)
  2. 但它在Linux中不起作用.(显示数据不正确)

奇怪的是在窗口中插入UTF8 工作正常,但是当我在linux中部署MySQL时,在向数据库插入数据时它会插入错误的UTF8值.

感谢帮助

编辑:更新更多详细信息请关注@Col的评论.弹片

mysql linux utf-8

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

标签 统计

android ×3

android-widget ×1

c ×1

function-pointers ×1

linux ×1

mysql ×1

syntax ×1

utf-8 ×1