我最近注意到,当我升级到30或更高的Androids时,我的链接功能已经停止工作。这似乎是因为安卓系统实现了对声明包的可见性的需求。
所以现在,当我尝试使用Linking.canOpenURL在我的安卓设备上打开默认的短信应用程序时,什么都没有发生。
我假设将这个包名添加到我的AndroidManifest.xml文件中将修复这个问题。查看android文档中的示例代码,我们可以看到以下内容。
<manifest package="com.example.game">
<queries>
<package android:name="com.example.store" />
<package android:name="com.example.services" />
</queries>
...
</manifest>我希望能够打开默认的短信应用程序的任何安卓设备。如何获取任何设备的默认sms应用程序的包名并将其包含在我的清单文件中?
发布于 2022-09-06 01:55:34
您不需要知道默认消息应用程序是什么才能启动它。所有你需要它来发送这个意图:
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_APP_MESSAGING);
intent.setFlags(Intent.FLAG_FROM_BACKGROUND | Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);或者,如果您确实希望启动特定phone#的文本消息:
Intent intent = new Intent(Intent.ACTION_SENDTO, Uri.parse("sms:5551234567"));
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);显然,将"5551234567“改为实际电话号码。
https://stackoverflow.com/questions/73615922
复制相似问题