2013-01-13 58 views
0

我创建了2个简单的项目。 在首先,我把权限来体现:Android我的应用权限

<permission android:name="com.example.MODULE" 
      android:label="Example module" 
      android:protectionLevel="dangerous" /> 
<application android:label="@string/app_name" android:theme="@style/Theme.Sherlock.Light" android:icon="@drawable/ic_launcher"> 
    <activity android:name="MyActivity" 
       android:label="@string/app_name" 
       android:exported="true" 
       android:excludeFromRecents="true"> 
<intent-filter> 
      <action android:name="android.intent.action.MAIN"/> 
      <action android:name="com.example.graph.SHOW"/> 
      <category android:name="android.intent.category.DEFAULT" /> 
     </intent-filter> 

而在第二个项目:

<uses-permission android:name="com.example.MODULE"/

,但如果我从第二个项目中删除用途的许可,然后再开始活动:

第一个项目的
startActivity(new Intent("com.example.graph.SHOW")) 

- 它仍在开始。但为什么?如何在未经许可的情况下开始?如何正确保护我的第二个项目使用权限?

回答

0

您无需启动应用程序的权限。您可以运行所有应用程序而无需向开发人员提出权限。例如,我可以在不询问开发人员的情况下运行此代码(启动一个着名的条码扫描器)。

Intent intent = new Intent("com.google.zxing.client.android.ENCODE"); 
intent.putExtra("ENCODE_TYPE", "TEXT_TYPE"); 
intent.putExtra("ENCODE_DATA", output); 
intent.putExtra("ENCODE_FORMAT", "QR_CODE"); 
intent.putExtra("ENCODE_SHOW_CONTENTS", false); 
+1

要添加到您的答案中,OP的第一个项目已通过添加intent-filter:'来导出Activity。这允许任何**应用程序启动活动。 –

+0

我可以限制任何应用程序吗?我想允许启动我的活动只适用于有一些“密码”/许可的应用程序... – user1766287

+0

阅读http://developer.android.com/guide/components/intents-filters.html和http://developer.android .COM /引导/主题/清单/意图 - 过滤 - element.html – ObAt