2017-07-26 91 views
-3

我嘗試使用下面的代碼安全異常:上張貼到Twitter

Intent intent = new Intent(android.content.Intent.ACTION_SEND); 
    intent.setType("text/plain"); 
    final PackageManager pm = context.getPackageManager(); 
    final List<ResolveInfo> activityList = pm.queryIntentActivities(intent, 0); 
    for (final ResolveInfo app : activityList) { 
     if (app.activityInfo.packageName.endsWith(PACKAGE_TWITTER)) { 
      final ActivityInfo activity = app.activityInfo; 
      final ComponentName name = new ComponentName(activity.applicationInfo.packageName, activity.name); 
      intent.addCategory(Intent.CATEGORY_LAUNCHER); 
      intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED); 
      intent.putExtra(Intent.EXTRA_TEXT, strBody); 
      intent.setComponent(name); 
      context.startActivity(intent); 
      break; 
     } 
    } 

張貼在Twitter和這個代碼引發安全異常權限拒絕。請幫忙。

+0

郵政異常日誌以及 –

+0

@kapsym java.lang.SecurityException異常:權限拒絕:啓動意圖{行爲= android.intent.action.SEND貓= [android.intent.category.LAUNCHER]典型值=文本/ flg = 0x10200001 cmp = com.twitter.android/.composer.ComposerActivity clip = {text/plain T:}(e​​xtras)} from ProcessRecord {3745232 4862:com.et.reader.activities/u0a219}(pid = 4862 ,uid = 10219)不能從uid導出10135 –

+0

爲什麼你需要intent.addCategory(Intent.CATEGORY_LAUNCHER); –

回答

0

您需要在聲明此Activity的AndroidManifest.xml文件中設置android:exported =「true」。

<activity 
    android:exported="true"> 
    <intent-filter> 
     <action android:name="android.intent.action.MAIN" > 
     </action> 
    </intent-filter> 
</activity> 
+0

我正試圖在twitter上發帖。如何爲Twitter活動設置android:exported =「true」。 –