4

所以我的主要問題是啓動一個隱含的意圖的新應用程序。因此,這裏是應該開始新經濟模式的應用程序的活動:Android,無法隱式啓動活動

package course.labs.permissionslab; 
public class GoToDangerousActivity extends Activity { 

private static final String TAG = "Lab-Permissions"; 

private static final String DANGEROUS_ACTIVITY_ACTION = "course.labs.permissions.DANGEROUS_ACTIVITY_PERM"; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.go_to_dangerous_activity); 

    Button startDangerousActivityButton = (Button) findViewById(R.id.start_dangerous_activity_button); 
    startDangerousActivityButton.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      startDangerousActivity(); 

     } 
    }); 

} 

private void startDangerousActivity() { 

    Log.i(TAG, "Entered startDangerousActivity()"); 
    Intent dangerActivation = Intent.createChooser(new Intent(DANGEROUS_ACTIVITY_ACTION), "Choose yo.."); 
    startActivity(dangerActivation); 

} 

} 

我剛添加的appChoser所以我的我的應用程序犯規瞬間打破。 現在通過創建隱式意圖「course.labs.permissions.DANGEROUS_ACTIVITY_PERM」,我需要添加到其他應用程序intent過濾器?我會離開的其他應用程序的副本的manifest.xml,以幫助識別問題:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="course.labs.dangerousapp" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk 
     android:minSdkVersion="13" 
     android:targetSdkVersion="18" /> 

    <!-- 
      TODO - Using a permission element, 
      define a custom permission with name 
       "course.labs.permissions.DANGEROUS_ACTIVITY_PERM" 
      and "dangerous" protection level. 
    --> 
    <permission 
     android:protectionLevel="dangerous" 
     android:name="course.labs.permissions.DANGEROUS_ACTIVITY_PERM"> 
    </permission> 

    <uses-permission android:name="course.labs.permissions.DANGEROUS_ACTIVITY"/> 

    <application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 

     <!-- TODO - enforce the custom permission on this Activity --> 

     <activity 
      android:name=".DangerousActivity" 
      android:label="@string/app_name"> 

      <!-- 
       TODO - add additional intent filter info so that this Activity 
        will respond to an Implicit Intent with the action 
        "course.labs.permissions.DANGEROUS_ACTIVITY" 
      --> 


      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 

      <intent-filter> 
       <action android:name="course.labs.permissions.DANGEROUS_ACTIVITY_PERM" /> 
       <category android:name="android.intent.category.DEFAULT" /> 
      </intent-filter> 

     </activity> 
    </application> 

</manifest> 

回答

3

首先,

<uses-permission android:name="course.labs.permissions.DANGEROUS_ACTIVITY_PERM"/> 

這應該是您要訪問這個應用程序應用程序。

假設您有應用程序A並且您想要打開危險應用程序,則將此權限用法置於A的清單文件中。

二:

你還需要告訴許可申請書。將此權限添加到應用程序。

<application 
    android:permission="course.labs.permissions.DANGEROUS_ACTIVITY_PERM" 
    <!-- your other attributes --> 
> 

三:

意圖過濾器應該鏈接到活動沒有權限字符串。

 <intent-filter> 
      <action android:name="course.labs.permissions.DANGEROUS_ACTIVITY" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
     </intent-filter> 
+0

在第一步,它是否假設是?而不是「course.labs.permissions.DANGEROUS_ACTIVITY」 –

+1

是的,你是對的,這是從問題複製粘貼的結果。我編輯了我的答案 –

相關問題