[解決済み] Androidのソースコードにある@hideの意味とは?
質問
について
Activity
ソースコード
の、3898行目(一番下に近いところ)。
/**
* @hide
*/
public final boolean isResumed() {
return mResumed;
}
は何をするのか
@hide
は何を意味するのでしょうか?
私は自分の
public class ChildActivity extends Activity { ... }
が使えない/見えない
Activity.isResumed()
. これは正常ですか?どうすればアクセスできるのでしょうか?
どのように解決するのですか?
Androidには、SDKからアクセスできないAPIが2種類あります。
1つ目は、パッケージ
com.android.internal
. 2つ目のAPIタイプは、クラスとメソッドの集まりで、マークされた
@hide Javadoc 属性
.
Android 9 (API レベル 28) から、Google は 非 SDK インターフェイスの使用に関する新しい制限事項 直接、リフレクション、または JNI を介してかどうかにかかわらず。これらの制限は、アプリが非 SDK インターフェイスを参照したり、リフレクションまたは JNI を使用してそのハンドルを取得しようとすると、常に適用されます。
しかし、API レベル 28 より前は、隠しメソッドはまだ Java リフレクションでアクセス可能でした。そのため
@hide
属性は Javadoc (droiddoc も) の一部に過ぎませんので
@hide
は単にメソッド/クラス/フィールドが API ドキュメントから除外されていることを意味するだけです。
例えば
checkUidPermission()
の中のメソッドは
ActivityManager.java
は
@hide
:
/** @hide */
public static int checkUidPermission(String permission, int uid) {
try {
return AppGlobals.getPackageManager()
.checkUidPermission(permission, uid);
} catch (RemoteException e) {
// Should never happen, but if it does... deny!
Slog.e(TAG, "PackageManager is dead?!?", e);
}
return PackageManager.PERMISSION_DENIED;
}
しかし、リフレクションで呼び出すことができます。
Class c;
c = Class.forName("android.app.ActivityManager");
Method m = c.getMethod("checkUidPermission", new Class[] {String.class, int.class});
Object o = m.invoke(null, new Object[]{"android.permission.READ_CONTACTS", 10010});
関連
-
[解決済み] Androidのgravityとlayout_gravityの違いは何ですか?
-
[解決済み] Androidのソフトキーボードをプログラムで閉じる/隠すにはどうすればよいですか?
-
[解決済み] Androidの「コンテキスト」とは何ですか?
-
[解決済み] APKファイルからソースコードを取得する方法はありますか?
-
[解決済み] アプリケーションを終了することは嫌われますか?
-
[解決済み] グリッドレイアウトにおけるフリングジェスチャーの検出
-
[解決済み] android:layout_weightとは何ですか?
-
[解決済み】「px」、「dip」、「dp」、「sp」の違いは?
-
[解決済み] アンドロイドフラグメント onRestoreInstanceState
-
[解決済み] FloatingActionButtonのサンプルとサポートライブラリ
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] アンドロイドフラグメント onRestoreInstanceState
-
[解決済み] Androidの連絡先リストを呼び出すには?
-
[解決済み] handler.postDelayed()を停止する。
-
[解決済み] XMLで矩形を描画できますか?
-
[解決済み] APKが署名済みかデバッグビルドかを確認するには?
-
[解決済み] エラーです。ステータス{statusCode=DEVELOPER_ERROR, resolution=null}.
-
[解決済み] AndroidでビューのonClickイベントをその親に渡すには?
-
[解決済み] メディアプレーヤーが状態0で呼び出され、エラー(-38,0)
-
[解決済み] ビルドフレーバーによってアプリ名が異なる?
-
[解決済み] Androidアプリケーションのインストール中に「Parse Error: Androidアプリケーションのインストール時に「パッケージの解析に問題があります。