Androidホーム画面のショートカット許可エラー
-
03-07-2019 - |
質問
私のプログラムでは、画面にショートカットを追加します。画面にアイコンが表示されますが、タップすると次のように表示されます:
03-01 20:00:29.410: ERROR/AndroidRuntime(796): java.lang.SecurityException: Permission Denial: starting Intent { data=http://www.example.com/ flags=0x14000000 comp={com.isaacwaller.example/com.isaacwaller.example.ExampleCut} } from ProcessRecord{435c7398 796:android.process.acore/10005} (pid=796, uid=10005) requires null
問題を知っていますか?ありがとう、
アイザック
解決 2
それを理解し、これをアクティビティの<activity>
タグの下に追加しました:
<intent-filter>
<action android:name="android.intent.action.MAIN"></action>
</intent-filter>
他のヒント
マニフェストでアクティビティの1つに誤ってアクティビティタグを複製したときに、このようなことが起こりました。アプリケーションセクションにこのようなものがありました。
<activity android:name=".ConventionHome" android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="ConventionHome"></activity>
2番目のアクティビティタグを削除すると、正常に動作し始めました。
次のようなものが機能するはずです:
<intent-filter>
<action android:name="com.example.Project.Action"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
マニフェストのActivity宣言内。
私もこの問題に遭遇しましたが、それはアクティビティが他のプロセスに公開されていないことが原因でした。 android:exported = <!> quot; true <!> quot;を追加する必要がありました。マニフェスト内のアクティビティタグの属性。
http://developer.android.com/guideをご覧ください。 /topics/manifest/activity-element.html#exported で詳細をご覧ください。
これに個人的に遭遇したことはありませんが、いくつかの調査を行ったところ、次のことがわかりました。
どうやらアプリを起動しようとしているか、アプリにインテントを作成して何らかのインテントのアクティビティを開始する呼び出しがある場合、UIDは同じではありません。
ActivityManagerServer.javaには、以下の判断があります。
int checkComponentPermission(String permission, int pid, int uid, int reqUid)
// If the target requires a specific UID, always fail for others.
if (reqUid >= 0 && uid != reqUid) {
return PackageManager.PERMISSION_DENIED;
}
これについてテストを行い、テストアプリケーションでこれを再現して追加のフィードバックを提供できるかどうかを確認します。
インテントを通じて公開されているアクティビティのみを呼び出そうとしていることを確認してください。