IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 利用Intent调用另外一个app的activity(示例) -> 正文阅读

[移动开发]利用Intent调用另外一个app的activity(示例)

两个app

cn.basicconstruction.example
com.luckyxmoible.mymemo

调用逻辑,两个都是自己的软件。

主要逻辑代码:

com.cn.basicconstruction.example.MainActivity.java

Intent intent = new Intent(Intent.ACTION_PICK,Uri.parse("contents://bluediary"));
            startActivity(intent);

cn.basicconstruction.example.AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="cn.basicconstruction.example">
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-feature android:name="android.hardware.nfc" android:required="false"/>
    <queries>
        <package android:name="com.luckyxmoible.mymemo" />
    </queries>
    <application
        android:allowBackup="false"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.Example">
        <activity android:name=".MainActivity" android:launchMode="singleTask">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".Act2">

        </activity>
    </application>

</manifest>

com.luckyxmoible.mymemo.AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.luckyxmoible.mymemo">
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.RECEIVE_SMS" />
    <uses-permission android:name="android.permission.READ_SMS" />
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <uses-permission android:name="android.permission.CAPTURE_AUDIO_OUTPUT"
        tools:ignore="ProtectedPermissions" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
        tools:ignore="ScopedStorage" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
    <uses-permission android:name="android.permission.WRITE_CONTACTS" />
    <uses-permission android:name="android.permission.MANAGE_DOCUMENTS"
        tools:ignore="ProtectedPermissions" />
    <application
        android:allowBackup="false"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.Mymemo"
        android:windowSoftInputMode="adjustPan">
        <activity android:name=".MainActivity" android:launchMode="singleTask"
            android:exported="true"
            >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".PreferencesActivity"
            >
            <intent-filter>
                <action android:name="android.intent.action.MANAGE_NETWORK_USAGE"/>
                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>
        </activity>
        <activity android:name=".AddDiaryActivity" android:theme="@style/Theme.AppCompat.NoActionBar"
            android:launchMode="singleTask"
            >
            <intent-filter>
                <action android:name="android.intent.action.PICK"/>
                <category android:name="android.intent.category.DEFAULT"/>
                <data android:scheme="contents" android:host="bluediary"/>
            </intent-filter>
            <intent-filter>
                <action android:name="com.luckyxmoible.mymemo.add_new_diary.app"/>
                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>
            <!-- filter for sending text or images; accepts SEND action and text or image data -->
            <intent-filter>
                <action android:name="android.intent.action.SEND"/>
                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>
        </activity>
        <activity android:name=".ShowDiaryDetails" android:theme="@style/Theme.AppCompat.NoActionBar"
            android:launchMode="singleTask">

        </activity>
    </application>

</manifest>

额外解释:在com.luckyxmoible.mymemo.AndroidManifest.xml中的AddDiaryActivity这个Activity的注册信息中,android:exported="true"不必显式声明,这个值的默认值即为true。

我们给AddDiaryActivity的注册信息中添加了

<intent-filter>
                <action android:name="android.intent.action.PICK"/>
                <category android:name="android.intent.category.DEFAULT"/>
                <data android:scheme="contents" android:host="bluediary"/>
            </intent-filter>

在这里我们使用的是android的动作,pick和send并且没有进行额外添加任何mimeType,在调用时也没有添加任何其他信息。

注意:在cn.basicconstruction.example.AndroidManifest.xml中我们声明了

这个或许不是必须的

<queries>
    <package android:name="com.luckyxmoible.mymemo" />
</queries>

https://developer.android.com/training/basics/intents/package-visibility?hl=zh-cn中有更详细的介绍。

按照理解来说,就是使得引入包的activity可见。

注意:我们并未引入 另一个Activity的声明在这一个程序的AndroidManifest.xml.

原文:

查询特定软件包及与之交互

如果您知道要查询或与之交互的一组特定应用(例如,与您的应用集成的应用或您使用其服务的应用),请将其软件包名称添加到?<queries>?元素内的一组?<package>?元素中:

<manifest package="com.example.game">
? ? <queries>
? ? ? ? <package android:name="com.example.store" />
? ? ? ? <package android:name="com.example.services" />
? ? </queries>
? ? ...
</manifest>

更多:https://blog.csdn.net/qq475703980/article/details/78941370?

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-08-21 15:35:19  更:2021-08-21 15:36:47 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 9:34:28-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码