我查看了使您的应用成为默认短信客户端(found here)的示例代码,示例项目在运行4.4的Nexus 4上运行良好。点击后会有一个按钮,它会执行以下操作:
Intent intent = new Intent(Intents.ACTION_CHANGE_DEFAULT);
intent.putExtra(Intents.EXTRA_PACKAGE_NAME, context.getPackageName());
context.startActivity(intent);
这样就会出现'更改短信应用程序'对话框,允许用户切换默认的短信应用程序。
当我在Nexus 7(2012,Wifi)上运行完全相同的项目时,按钮什么都不做,虽然我可以在Logcat中读取意图开始。同样的事情发生在Nexus 7 2013,我检查的wifi模型。
我尝试从市场上下载一些短信应用程序,所有这些都发生了同样的事情。他们在我的N4中表现很好,在我的N7中没有运气。
任何人都面临同样的问题?他们是否削减了将信息写入无法整体发送文本的设备的能力?
编辑:注意到Telephony文档写道:
注意:这些API并非适用于所有Android设备。如果您的应用程序依赖于电话功能(例如管理SMS消息),请在清单中包含一个声明“android.hardware.telephony”硬件功能的元素。或者,您可以使用hasSystemFeature(PackageManager.FEATURE_TELEPHONY)或getPhoneType()在运行时检查电话可用性。
所以,我猜测如果设备没有上述功能,它就无法“管理短信”(成为默认的短信应用)。
答案 0 :(得分:1)
如果您升级到Android 4.4,似乎短信不再适用于Nexus 7 3G。
过去,有些人可以通过下载和安装第三方短信应用程序在平板电脑上使用短信。尽管ROM(和AFAIK,这不是官方功能)没有库存消息应用程序,但这通常有效。
然而,Nexus 7 3G上的Android 4.4 KitKat取消了此功能。
在Android 4.4中,必须将消息传递应用程序设置为“默认短信应用程序”,以便可以将新消息保存到手机的消息数据库中。换句话说,消息传递应用程序必须是默认的短信应用程序才能完全运行。
在Nexus 5(和Android模拟器)中,有一个设置设置»...»无线»默认短信应用程序,它允许您选择默认的短信应用程序。
在Nexus 7 3G中,此设置不存在。
似乎Nexus 7不支持“默认短信应用程序”。换句话说,您无法将应用程序设置为默认的短信应用程序。这意味着无法使用短信应用程序。