26

この権限をAndroidマニフェストに追加したい:

<uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />

しかし、この許可をマニフェストに貼り付けると、赤い下線がテストされ、次のように表示されます。

権限はシステムアプリにのみ付与されます

私に何ができる?

4

7 に答える 7

65

MODIFY_PHONE_STATE権限はシステムアプリにのみ付与されます。

参考までに、Androidアプリにはシステムとユーザーの2種類があります

ユーザーアプリは、Google Playストア、Amazon Appstore、またはサイドローディングを介した通常のアプリのインストールです。これらはAndroidスマートフォンの/dataパーティションに入ります。これは、ユーザーデータとアプリで利用できるようになった内部メモリの一部です。

システムアプリは基本的に、ROMにプリインストールされているアプリです。標準のAndroidユーザー環境では、ユーザーは/ systemパーティションへの書き込みアクセス権を持っていないため、システムアプリを直接インストールまたはアンインストールすることはできません。

アプリをシステムアプリとしてAndroidデバイスにインストールするには 、デバイスをルート化するか、カスタムリカバリをインストールする(またはその両方)必要があります

そうは言っても、有効なコードがあり、コンパイルが機能するはずなので、そのエラーは実際には間違っています。代わりに警告を出したほうがいいでしょう。Eclipseでは簡単に修正できます。ただ行く:

ウィンドウ->設定->Android->リントエラーチェック。

リストから検索ProtectedPermissionし、重大度をエラー以外の値に設定します(たとえば、情報)。このようにして、プロジェクトは引き続きコンパイルされます。

于 2013-01-15T09:02:30.983 に答える
6

MODIFY_PHONE_STATEシステムのみの権限です。システムアプリは、システムフォルダーにプリインストールされているか、セキュリティ証明書を使用してメーカーによってコンパイルされています。

したがって、これを実行しようとしている場合は、サポートされなくなったAPIを使用しようとしています。Androidバージョン2.3以降では、着信を監視できますが、ブロックは許可されていません(投稿したリンクから、あなたがやろうとしていることだと思います)。

フォローする必要がある場合のAndroidの問題:Issue15022およびIssue14789

于 2012-11-28T03:22:39.363 に答える
4

このエラーは、マニフェストを変更すると、SDK19以降で表示されます。プロジェクトのクリーンアップとビルドを実行します。このエラーをクリアする必要があります。

于 2014-02-08T00:21:07.230 に答える
2

プロジェクトをクリーンアップするだけで、次のようになります。

プロジェクト>クリーン...

于 2014-03-31T12:32:07.160 に答える
1

これはシステムレベルの権限であるため、デバイス開発者はこれを許可しないため、アプリケーション開発ツールもこれに対して警告を発するため、次のことを行う必要があります。

プロジェクトをクリーンアップして再構築するだけです。

于 2014-06-04T11:02:42.670 に答える
1

許可には4つのタイプがあります

Regular
Dangerous
Signed
Signed or System

The first two can be used by Simple Apps他の2つは、フレームワークに組み込まれているアプリでのみ使用できます

于 2015-10-27T08:27:45.353 に答える
0

のリストからProtectedPermissionを見つけます

Window -> Preferences -> Android -> Lint Error Checking.

重大度をエラー以外に設定します(たとえば、情報)。このようにして、プロジェクトは引き続きコンパイルされます。

于 2015-03-13T12:53:59.253 に答える