|
|
|
@ -2,14 +2,38 @@
|
|
|
|
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
|
|
|
|
xmlns:tools="http://schemas.android.com/tools">
|
|
|
|
|
|
|
|
|
|
<!--
|
|
|
|
|
* 应用所需权限声明
|
|
|
|
|
* 注意:从 Android 6.0 (API level 23) 开始,部分权限需要在运行时动态申请
|
|
|
|
|
-->
|
|
|
|
|
|
|
|
|
|
<!-- 允许应用写入外部存储(如 SD 卡) -->
|
|
|
|
|
<!-- 注意:从 Android 10 开始,建议使用 Scoped Storage 替代此权限 -->
|
|
|
|
|
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
|
|
|
|
|
|
|
|
|
<!-- 允许应用在主屏幕上创建快捷方式 -->
|
|
|
|
|
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
|
|
|
|
|
|
|
|
|
|
<!-- 允许应用访问网络连接 -->
|
|
|
|
|
<uses-permission android:name="android.permission.INTERNET" />
|
|
|
|
|
|
|
|
|
|
<!-- 允许应用读取用户的联系人数据 -->
|
|
|
|
|
<uses-permission android:name="android.permission.READ_CONTACTS" />
|
|
|
|
|
|
|
|
|
|
<!-- 允许应用管理账户(如添加、删除账户) -->
|
|
|
|
|
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
|
|
|
|
|
|
|
|
|
|
<!-- 允许应用执行账户认证 -->
|
|
|
|
|
<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" />
|
|
|
|
|
|
|
|
|
|
<!-- 允许应用获取账户列表 -->
|
|
|
|
|
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
|
|
|
|
|
|
|
|
|
|
<!-- 允许应用使用账户凭证 -->
|
|
|
|
|
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
|
|
|
|
|
|
|
|
|
|
<!-- 允许应用接收系统启动完成的广播 -->
|
|
|
|
|
<!-- 用于在设备启动后重新设置闹钟等任务 -->
|
|
|
|
|
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
|
|
|
|
|
|
|
|
|
|
<application
|
|
|
|
@ -23,6 +47,13 @@
|
|
|
|
|
android:theme="@style/Theme.Notesmaster"
|
|
|
|
|
tools:targetApi="31">
|
|
|
|
|
|
|
|
|
|
<!--
|
|
|
|
|
* 应用主界面活动:笔记列表
|
|
|
|
|
* 特性:
|
|
|
|
|
* - singleTop 启动模式:避免重复创建相同的 Activity 实例
|
|
|
|
|
* - 处理屏幕旋转和键盘显示等配置变化
|
|
|
|
|
* - 支持分屏操作(splitActionBarWhenNarrow)
|
|
|
|
|
-->
|
|
|
|
|
<activity
|
|
|
|
|
android:name=".ui.NotesListActivity"
|
|
|
|
|
android:configChanges="keyboardHidden|orientation|screenSize"
|
|
|
|
@ -33,12 +64,21 @@
|
|
|
|
|
android:windowSoftInputMode="adjustPan"
|
|
|
|
|
android:exported="true">
|
|
|
|
|
|
|
|
|
|
<!-- 应用启动入口点 -->
|
|
|
|
|
<!-- 系统启动器通过此 intent-filter 识别应用图标和启动 Activity -->
|
|
|
|
|
<intent-filter>
|
|
|
|
|
<action android:name="android.intent.action.MAIN" />
|
|
|
|
|
<category android:name="android.intent.category.LAUNCHER" />
|
|
|
|
|
</intent-filter>
|
|
|
|
|
</activity>
|
|
|
|
|
|
|
|
|
|
<!--
|
|
|
|
|
* 笔记编辑活动
|
|
|
|
|
* 支持以下操作:
|
|
|
|
|
* - 查看现有笔记(VIEW 操作)
|
|
|
|
|
* - 创建或编辑笔记(INSERT_OR_EDIT 操作)
|
|
|
|
|
* - 搜索笔记内容(SEARCH 操作)
|
|
|
|
|
-->
|
|
|
|
|
<activity
|
|
|
|
|
android:name=".ui.NoteEditActivity"
|
|
|
|
|
android:configChanges="keyboardHidden|orientation|screenSize"
|
|
|
|
@ -46,6 +86,8 @@
|
|
|
|
|
android:theme="@style/NoteTheme"
|
|
|
|
|
android:exported="true">
|
|
|
|
|
|
|
|
|
|
<!-- 处理查看笔记请求的意图过滤器 -->
|
|
|
|
|
<!-- 支持两种 MIME 类型:文本笔记和通话笔记 -->
|
|
|
|
|
<intent-filter>
|
|
|
|
|
<action android:name="android.intent.action.VIEW" />
|
|
|
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
|
|
@ -53,6 +95,8 @@
|
|
|
|
|
<data android:mimeType="vnd.android.cursor.item/call_note" />
|
|
|
|
|
</intent-filter>
|
|
|
|
|
|
|
|
|
|
<!-- 处理插入或编辑笔记请求的意图过滤器 -->
|
|
|
|
|
<!-- 同样支持文本笔记和通话笔记两种类型 -->
|
|
|
|
|
<intent-filter>
|
|
|
|
|
<action android:name="android.intent.action.INSERT_OR_EDIT" />
|
|
|
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
|
|
@ -60,22 +104,37 @@
|
|
|
|
|
<data android:mimeType="vnd.android.cursor.item/call_note" />
|
|
|
|
|
</intent-filter>
|
|
|
|
|
|
|
|
|
|
<!-- 搜索功能的意图过滤器 -->
|
|
|
|
|
<!-- 与下面的 searchable 元数据配合实现搜索功能 -->
|
|
|
|
|
<intent-filter>
|
|
|
|
|
<action android:name="android.intent.action.SEARCH" />
|
|
|
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
|
|
|
</intent-filter>
|
|
|
|
|
|
|
|
|
|
<!-- 配置搜索功能的元数据 -->
|
|
|
|
|
<!-- @xml/searchable 文件定义了搜索框的样式和搜索逻辑 -->
|
|
|
|
|
<meta-data
|
|
|
|
|
android:name="android.app.searchable"
|
|
|
|
|
android:resource="@xml/searchable" />
|
|
|
|
|
</activity>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<!--
|
|
|
|
|
* 内容提供者:用于管理和访问应用的笔记数据
|
|
|
|
|
* - authorities 指定内容提供者的唯一标识符
|
|
|
|
|
* - multiprocess 允许在多个进程中实例化此提供者
|
|
|
|
|
-->
|
|
|
|
|
<provider
|
|
|
|
|
android:name="net.micode.notes.data.NotesProvider"
|
|
|
|
|
android:authorities="micode_notes"
|
|
|
|
|
android:multiprocess="true" />
|
|
|
|
|
|
|
|
|
|
<!--
|
|
|
|
|
* 2x2 尺寸的桌面小部件
|
|
|
|
|
* 响应以下广播事件:
|
|
|
|
|
* - APPWIDGET_UPDATE:小部件更新事件
|
|
|
|
|
* - APPWIDGET_DELETED:小部件删除事件
|
|
|
|
|
* - PRIVACY_MODE_CHANGED:隐私模式变更事件
|
|
|
|
|
-->
|
|
|
|
|
<receiver
|
|
|
|
|
android:name=".widget.NoteWidgetProvider_2x"
|
|
|
|
|
android:label="@string/app_widget2x2"
|
|
|
|
@ -86,10 +145,17 @@
|
|
|
|
|
<action android:name="android.intent.action.PRIVACY_MODE_CHANGED" />
|
|
|
|
|
</intent-filter>
|
|
|
|
|
|
|
|
|
|
<!-- 小部件配置元数据 -->
|
|
|
|
|
<!-- @xml/widget_2x_info 定义了小部件的布局、更新周期等信息 -->
|
|
|
|
|
<meta-data
|
|
|
|
|
android:name="android.appwidget.provider"
|
|
|
|
|
android:resource="@xml/widget_2x_info" />
|
|
|
|
|
</receiver>
|
|
|
|
|
|
|
|
|
|
<!--
|
|
|
|
|
* 4x4 尺寸的桌面小部件
|
|
|
|
|
* 功能与 2x2 小部件类似,但提供更大的显示区域
|
|
|
|
|
-->
|
|
|
|
|
<receiver
|
|
|
|
|
android:name=".widget.NoteWidgetProvider_4x"
|
|
|
|
|
android:label="@string/app_widget4x4"
|
|
|
|
@ -101,11 +167,17 @@
|
|
|
|
|
<action android:name="android.intent.action.PRIVACY_MODE_CHANGED" />
|
|
|
|
|
</intent-filter>
|
|
|
|
|
|
|
|
|
|
<!-- 小部件配置元数据 -->
|
|
|
|
|
<meta-data
|
|
|
|
|
android:name="android.appwidget.provider"
|
|
|
|
|
android:resource="@xml/widget_4x_info" />
|
|
|
|
|
</receiver>
|
|
|
|
|
|
|
|
|
|
<!--
|
|
|
|
|
* 开机初始化接收器
|
|
|
|
|
* 响应系统启动完成广播(BOOT_COMPLETED)
|
|
|
|
|
* 主要用于重新设置已安排的闹钟提醒
|
|
|
|
|
-->
|
|
|
|
|
<receiver android:name=".ui.AlarmInitReceiver"
|
|
|
|
|
android:exported="true">
|
|
|
|
|
<intent-filter>
|
|
|
|
@ -113,11 +185,21 @@
|
|
|
|
|
</intent-filter>
|
|
|
|
|
</receiver>
|
|
|
|
|
|
|
|
|
|
<!--
|
|
|
|
|
* 闹钟提醒接收器
|
|
|
|
|
* 在单独的进程中运行(:remote)
|
|
|
|
|
* 处理闹钟触发事件并启动提醒界面
|
|
|
|
|
-->
|
|
|
|
|
<receiver
|
|
|
|
|
android:name="net.micode.notes.ui.AlarmReceiver"
|
|
|
|
|
android:process=":remote" >
|
|
|
|
|
</receiver>
|
|
|
|
|
|
|
|
|
|
<!--
|
|
|
|
|
* 闹钟提醒活动
|
|
|
|
|
* 以 singleInstance 模式启动
|
|
|
|
|
* 使用全屏无标题栏主题,确保在锁屏状态下也能显示
|
|
|
|
|
-->
|
|
|
|
|
<activity
|
|
|
|
|
android:name=".ui.AlarmAlertActivity"
|
|
|
|
|
android:label="@string/app_name"
|
|
|
|
@ -125,6 +207,11 @@
|
|
|
|
|
android:theme="@android:style/Theme.Holo.Wallpaper.NoTitleBar" >
|
|
|
|
|
</activity>
|
|
|
|
|
|
|
|
|
|
<!--
|
|
|
|
|
* 应用设置偏好活动
|
|
|
|
|
* 提供应用内设置选项(如主题、通知等)
|
|
|
|
|
* 使用 Holo.Light 主题提供简洁的设置界面
|
|
|
|
|
-->
|
|
|
|
|
<activity
|
|
|
|
|
android:name="net.micode.notes.ui.NotesPreferenceActivity"
|
|
|
|
|
android:label="@string/preferences_title"
|
|
|
|
@ -132,24 +219,39 @@
|
|
|
|
|
android:theme="@android:style/Theme.Holo.Light" >
|
|
|
|
|
</activity>
|
|
|
|
|
|
|
|
|
|
<!--
|
|
|
|
|
* Google 任务同步服务
|
|
|
|
|
* 用于与 Google Tasks 同步笔记数据
|
|
|
|
|
* 设计为不可导出服务,仅由应用内部调用
|
|
|
|
|
-->
|
|
|
|
|
<service
|
|
|
|
|
android:name="net.micode.notes.gtask.remote.GTaskSyncService"
|
|
|
|
|
android:exported="false" >
|
|
|
|
|
</service>
|
|
|
|
|
|
|
|
|
|
<!--
|
|
|
|
|
* 默认搜索活动配置
|
|
|
|
|
* 指定 NoteEditActivity 作为应用的默认搜索处理活动
|
|
|
|
|
-->
|
|
|
|
|
<meta-data
|
|
|
|
|
android:name="android.app.default_searchable"
|
|
|
|
|
android:value=".ui.NoteEditActivity" />
|
|
|
|
|
|
|
|
|
|
<!-- <activity-->
|
|
|
|
|
<!-- android:name=".MainActivity"-->
|
|
|
|
|
<!-- android:exported="true">-->
|
|
|
|
|
<!-- <intent-filter>-->
|
|
|
|
|
<!-- <action android:name="android.intent.action.MAIN" />-->
|
|
|
|
|
|
|
|
|
|
<!-- <category android:name="android.intent.category.LAUNCHER" />-->
|
|
|
|
|
<!-- </intent-filter>-->
|
|
|
|
|
<!-- </activity>-->
|
|
|
|
|
<!--
|
|
|
|
|
* 注释掉的主活动示例
|
|
|
|
|
* 保留此代码作为参考,展示另一种主活动配置方式
|
|
|
|
|
* 注意:一个应用只能有一个 MAIN/LAUNCHER intent-filter
|
|
|
|
|
-->
|
|
|
|
|
<!--
|
|
|
|
|
<activity
|
|
|
|
|
android:name=".MainActivity"
|
|
|
|
|
android:exported="true">
|
|
|
|
|
<intent-filter>
|
|
|
|
|
<action android:name="android.intent.action.MAIN" />
|
|
|
|
|
<category android:name="android.intent.category.LAUNCHER" />
|
|
|
|
|
</intent-filter>
|
|
|
|
|
</activity>
|
|
|
|
|
-->
|
|
|
|
|
|
|
|
|
|
</application>
|
|
|
|
|
|
|
|
|
|