如何解决如何使用导航组件在单个活动设计中使用权限?
我之前的应用程序有很多活动,其中一些活动被声明为导出为真,以便其他应用程序可以通过意图过滤器调用它们。 其中一些还具有特定权限,这也设置在我的活动中。
现在,我正在使用单个活动开发应用程序。 所以,我很想知道如何在单一活动设计中处理这个权限问题,因为我只有一个活动。
以前,在多个活动中,我可以轻松地在特定活动中设置权限。我怎么能在这里处理这个? 我是新手。我搜索了很多,但没有找到任何线索。
编辑:
Multiple activities declaration:
<permission
android:name="com.example.permission"
android:protectionLevel="signatureOrSystem"
tools:ignore="SignatureOrSystemPermissions"
/>
// Activity 1: With permission,exported = true
<activity
android:name=".place"
android:configChanges="keyboardHidden|orientation|screenSize|screenLayout"
android:exported="true"
android:label="place"
android:permission="com.example.permission" // Sets a permission
android:theme="@style/Theme.AppCompat.DayNight.NoActionBar">
<intent-filter>
<action android:name="com.action.places" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
// Activity 2: With no permission,exported = true
<activity
android:name="userCheck"
android:configChanges="mcc|mnc|keyboard|keyboardHidden|orientation"
android:exported="true"
android:theme="@style/Theme.AppCompat.DayNight.NoActionBar">
<intent-filter>
<action android:name="com.confirm.passowrd" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
现在,我想转向单一活动。
// Single activity: exported = true. How can i handle permission for place action?
<activity
android:name="com.example.singleActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<!-- Place -->
<action android:name="com.action.places"/> // How can i handle permission for this action?
<!-- UserCheck -->
<action android:name="com.confirm.passowrd" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
解决方法
如果您想限制在某些情况下启动单个 Activity
而不是其他情况,则不能使用基于清单的权限。无论以何种方式启动,基于清单的权限都会控制对特定 Activity
的访问。
您可以做的是为您的单个 <activity-alias>
创建一个 Activity
。 <activity-alias>
是引用实际 Activity
的清单条目,但提供备用启动选项。您可以在 <activity-alias>
上指定一组与您在实际 Activity
上拥有的权限不同的权限集。您还可以指定不同的 launchMode
、不同的 <intent-filter>
等。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。