首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >声明包可见性-默认的android消息传递应用程序包名称

声明包可见性-默认的android消息传递应用程序包名称
EN

Stack Overflow用户
提问于 2022-09-06 01:40:47
回答 1查看 54关注 0票数 1

我最近注意到,当我升级到30或更高的Androids时,我的链接功能已经停止工作。这似乎是因为安卓系统实现了对声明包的可见性的需求。

所以现在,当我尝试使用Linking.canOpenURL在我的安卓设备上打开默认的短信应用程序时,什么都没有发生。

我假设将这个包名添加到我的AndroidManifest.xml文件中将修复这个问题。查看android文档中的示例代码,我们可以看到以下内容。

代码语言:javascript
复制
<manifest package="com.example.game">
    <queries>
        <package android:name="com.example.store" />
        <package android:name="com.example.services" />
    </queries>
    ...
</manifest>

我希望能够打开默认的短信应用程序的任何安卓设备。如何获取任何设备的默认sms应用程序的包名并将其包含在我的清单文件中?

EN

回答 1

Stack Overflow用户

发布于 2022-09-06 01:55:34

您不需要知道默认消息应用程序是什么才能启动它。所有你需要它来发送这个意图:

代码语言:javascript
复制
    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#的文本消息:

代码语言:javascript
复制
    Intent intent = new Intent(Intent.ACTION_SENDTO, Uri.parse("sms:5551234567"));
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(intent);

显然,将"5551234567“改为实际电话号码。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73615922

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档